2015-09-07 105 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

檢查工作示例...其工作正常。你的代碼中有一些其他的錯誤。 –