В настоящее время у меня есть перетаскивание jQuery, и я хочу вставить окончательные результаты в базу данных. Я хочу использовать Javascript для получения значений, но я продолжаю получать результат «NULL», а не фактический контент (сгенерированный PHP / MySQL)
Это мой JavaScript
function getValue() {
var ajaxRequest; // The variable that makes Ajax possible!
try{
// Opera 8.0+, Firefox, Safari
ajaxRequest = new XMLHttpRequest();
}catch (e){
// Internet Explorer Browsers
try{
ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
}catch (e) {
try{
ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
}catch (e){
// Something went wrong
alert("Your browser broke!");
return false;
}
}
}
var left1 = document.getElementById('left1').getAttribute('value');
var left2 = document.getElementById("left2").getAttribute('value');
var left3 = document.getElementById("left3").getAttribute('value');
var queryString = "?left1=" + left1 ;
queryString += "&left2=" + left2 + "&left3=" + left3;
ajaxRequest.open("GET", "http://localhost:8888/ff/public_html/drag_and_drop.php" + queryString, true);
ajaxRequest.send(null);
}
PHP-код:
$dinner1 = $_GET['dinner1'];
$dinner2 = $_GET['dinner2'];
$dinner3 = $_GET['dinner3'];
$query2 = "INSERT INTO weekly_print (dinner1, dinner2, dinner3) VALUES ('".$dinner1."','".$dinner2."','".$dinner3."')";
$result2 = mysql_query ($query2) or trigger_error("Query: $query\n<br />MySQL Error: " . mysql_error());
if (@mysql_num_rows($result2) != 0) {
echo 'Success!!';
}
}
Я пытался использовать его без getAttrubute('value');
Однако я продолжал получать [object HTMLDivElement]
в следствии.
Это похожие вопросы, но они у меня совсем не сработали.
Как получить содержимое Div с помощью JavaScript
Получить содержимое DIV с помощью JavaScript
JavaScript innerHTML не работает
При использовании innerHTML я получаю результат ‘[object HTMLDivElement]’.
Я знаю, что мне нужно перейти на mysqli вместо mysql, который сейчас находится на тестовом сервере, поэтому, пожалуйста, игнорируйте это.
Мой HTML:
<div class="column" id="left1" style="border: 2px solid #a13f80;"></div>
<div class="column" id="left2" style="border: 2px solid #a13f80;"></div>
<div class="column" id="left3" style="border: 2px solid #a13f80;"></div>
вам просто нужно получить значения вместо attibutes:
document.getElementById('left1').value;
Замените свой код на:
var left1 = document.getElementById('left1').value;
var left2 = document.getElementById("left2").value;
var left3 = document.getElementById("left3").value;
И конвертируйте вашу структуру div в поля ввода, так как получение значений из div и передача их в php — очень нестандартный метод:
<input class="column" id="left1" style="border: 2px solid #a13f80;" />
<input class="column" id="left2" style="border: 2px solid #a13f80;" />
<input class="column" id="left3" style="border: 2px solid #a13f80;" />
Ваши div пустые, поэтому innerHTML не работает
PS: не могу комментировать маленькие моменты
использование innerText
или же textContent
атрибут для получения текста div.
left1div = document.getElementById('left1');
var left1divval = left1div.textContent || left1div.innerText;
alert(left1divval);