2015-09-07 108 views
1

我目前有一个jQuery拖放,并希望在数据库中插入最终结果。我想用JavaScript来获取值,但我不断收到结果“NULL”,而不是实际的内容(通过PHP/MySQL的生成)使用javascript,.innerHTML无法正常工作,获取DIV的内容?

这是我的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注入在PHP)自己从。 – Quentin

+0

Div元素没有值。你的div元素没有价值属性(反正无效),他们没有任何内容。你想要得到什么? – Quentin

回答

2

你只需要获取值,而不是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;" /> 
+0

这是我尝试的第一件事,但是我的结果是[对象HTMLDivElement]? – Fushy

+0

你能显示你的html吗? –

+0

哦,你没有任何输入 –

1

你的div是空的,这就是为什么的innerHTML不工作

PS:不能以小分

+0

* innerText *是非标准的,不支持所有使用的浏览器。这应该是一个评论,而不是一个答案。如前所述 – RobG

+0

var left1 = document.getElementById('left1')。value;不工作,我得到的结果[对象HTMLDivElement]。 – Fushy

+0

@ Denni007它们不是空的,它们是在PHP从数据库中出来时生成的。 – Fushy

-1

使用innerTexttextContent属性评论得到格文本。

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

See Working Example

+0

我已经改变了这一点,但现在其“未定义”? – Fushy

+0

检查工作示例...其工作正常。你的代码中有一些其他的错误。 –