2015-09-07 5 views
1

В настоящее время у меня есть перетаскивание jQuery и хочу вставить окончательные результаты в базу данных. Я хочу использовать JavaScript, чтобы получить значение, но я получаю результат «NULL», вместо фактического содержания (генерируемого PHP/MySQL)Получить контент DIV с помощью javascript, .innerHTML не работает?

Это мой 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] в результате.

Это похожие вопросы, но они не работали для меня вообще.

how get content of div via javascript
Get content of a DIV using JavaScript
JavaScript innerHTML not working

При использовании innerHTML я получаю результат '[объект 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> 
+0

** Опасность **: Вы используете [** устаревшие ** API базы данных] (http://stackoverflow.com/q/12859942/19068) и должны использовать [ современная замена] (http://php.net/manual/en/mysqlinfo.api.choosing.php). Вы уязвимы для [SQL-инъекций] (http://bobby-tables.com/) **, что современный API упростит [защиту] (http://stackoverflow.com/questions/60174/ наилучшим образом-чтобы-предотвратить-sql-injection-in-php). – Quentin

+0

Элементы Div не имеют значений. У ваших элементов div нет атрибутов значений (которые в любом случае были бы недопустимыми), и у них нет содержимого. Что вы пытаетесь получить? – Quentin

ответ

2

вам просто нужно, чтобы получить значения вместо атрибута объявления: 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;" /> 
+0

Это было первое, что я пробовал, но мой результат был [object HTMLDivElement]? – Fushy

+0

Можете ли вы показать свой html? –

+0

О, у вас нет каких-либо входов –

1

Ваши дивы пустые, вот почему innerHTML не работает

PS: Не могу комментировать до маленьких точек

+0

* innerText * является нестандартным и не поддерживается всеми используемыми браузерами. Это должен был быть комментарий, а не ответ. – RobG

+0

как ранее упоминалось var left1 = document.getElementById ('left1'). Value; не работает, я получаю результат [object HTMLDivElement]. – Fushy

+0

@ Denni007 Они не пустые, они генерируются PHP, поскольку они выходят из базы данных. – Fushy

-1

USE innerText или textContent атрибутов, чтобы получить Див текст.

left1div = document.getElementById('left1'); 
var left1divval = left1div.textContent || left1div.innerText; 
alert(left1divval); 

See Working Example

+0

Я изменил это на это, но теперь его «неопределенный»? – Fushy

+0

проверить рабочий пример ... его рабочий тон. в вашем коде есть иная ошибка. –

Смежные вопросы