2014-09-28 47 views
0

我想向我的數據庫發送一些上傳到我的數據庫的一些數據,這些數據是從processing.js和表單中的遊戲中收集的。一旦按下表單上的提交按鈕,數據就會發送到數據庫。 我的問題是,我無法從我的processing.js中拉出字符串數組並將其發送到數據庫。將字符串數組從processing.js拉到html

processing.js中的數組名稱爲answerArray。

我的html:

<form action="submitted.php" method="post" onsubmit="return js_sendData()"> 
    <input name="email" placeholder="Mail" type="text" class="text" /> 
    </div> 
    <div> 
     <input name="name" placeholder="Full Name" type="text" class="text" /> 
    </div> 
    <input type="submit" value="I solved it!" class="button"> 
</form> 

<script language="JavaScript" type="text/javascript"> 
    function js_sendData() { 
      $.post("save.php", {'answer[]': answerArray}, function(data) { 
      $("#status").html(data);}); 
      return true; 
    } 
</script> 

我的PHP(submitted.php):

//連接到數據庫

$con=mysqli_connect(connection details*); 

//Check connection 
if (mysqli_connect_errno()) { 
    echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
} 
$name = $_POST['name']; 
$email = $_POST['email']; 


mysqli_query($con,"INSERT INTO Answer (Name, Mail) 
VALUES ('$name', '$email')"); 

的保存不工作PHP(save.php) :

 // Connect to the database 
$con=mysqli_connect(connection details*); 

//Check connection 
if (mysqli_connect_errno()) { 
    echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
} 

$dta = $_POST['answer']; 

    mysqli_query($con,"UPDATE Answer 
    SET Correct = '$dta[0]', wordOne = '$dta[1]' ORDER BY saveID DESC LIMIT 1"); 

該代碼正確上傳html表單詳細信息(郵件和電子郵件),但不會爲正確和wordOne做到這一點。

+0

爲什麼你發送一個答案數組?它只是一個,它的阿賈克斯調用,防止默認它 – Ghost 2014-09-28 08:50:54

+0

我不明白你的答覆,你能改述嗎? – 2014-09-28 09:02:01

+0

你有什麼數組在首位?你的投入只有兩個,'answerArray'從哪裏來?你真正的意圖是什麼? ajax提交?或正常的刷新表單提交? – Ghost 2014-09-28 09:04:16

回答

0

必須使用JSON.stringify()函數在PHP發送一個數組:

<script language="JavaScript" type="text/javascript"> 
    function js_sendData() { 
      var answerToSend=JSON.stringify(answerArray); 
      $.post("save.php", {'answer': answerToSend}, function(data) { 
       $("#status").html(data); 
      },'json'); 
      return true; 
    } 
</script> 

然後在你的PHP:

$dta= json_decode(stripslashes($_POST['answer'])); 
+0

雖然在那種情況下,我直接從processing.js中調用ajax函數,但是在過去沒有使用json的情況下,發送數據的方法與數組完全相同。 就是這樣,我嘗試了你寫的東西,它也不起作用,我不知道爲什麼,但數據庫除了在表單中沒有收到任何信息。 – 2014-09-28 09:00:08