2013-03-14 100 views
-1

我目前正在運行JavaScript,點擊我的PHP頁面中用於保存數據的按鈕。

a.js

function save(){ 

var oldItems = JSON.parse(localStorage.getItem('itemsArray')) || []; 

var newItem = {}; 
var num = document.getElementById("num").value; 

newItem[num] = { 
    "methv": document.getElementById("methv").value 
    ,'q1': document.getElementById("q1").value, 
    'q2':document.getElementById("q2").value, 
    'q3':document.getElementById("q3").value, 
    'q4':document.getElementById("q4").value, 
    'comm':document.getElementById("comm").value 
}; 

oldItems.push(newItem); 

localStorage.setItem('itemsArray', JSON.stringify(oldItems)); 

$.post('edit.php', { items: JSON.stringify(oldItems) }, function(response) { 

}); 

在PHP頁面,我的形式如下:

edit.php

<form action="" method="post" enctype="multipart/form-data"> 

    <select name="methv" class="textfields" id="methv" style="width:110px" > 
    <option value= "dont know">dont know </option> 

<select name="q1" class="textfields" id="q1" style="width:50px" > 
<option value= "-">-</option> 
<option value= "L">L</option> 

<select name="q2" class="textfields" id="q2" style="width:50px" > 
<option value= "-">-</option> 
<option value= "L">L</option> 

<select name="q3" class="textfields" id="q3" style="width:50px" > 
<option value= "-">-</option> 
<option value= "L">L</option> 

<select name="q4" class="textfields" id="q4" style="width:50px" > 
<option value= "-">-</option> 
<option value= "L">L</option> 

<textarea rows="4" cols="40" id="comm" name="comm" style="width:300px"><?php echo $post['addcomment'] ;?></textarea> 

</form> 

當我運行PHP頁面,點擊按鈕,在控制檯,我得到一個帖子:

[{"1173627548":{"methv":"dont know","q1":"-","q2":"-","q3":"U","q4":"-","comm":""}},{"1173627548":{"methv":"dont know","q1":"-","q2":"-","q3":"U","q4":"-","comm":""}}] 

這些是來自本地存儲的結果 - 一個來自前一個,另一個被點擊後(每次單擊該按鈕時添加)。我如何獲取這些信息並將其顯示在PHP頁面上?

+0

http://php.net/manual/en/function.json-decode.php – vodich 2013-03-14 20:50:11

+0

我在哪裏delcare這個在php文件或js文件? – user2162768 2013-03-14 22:07:20

+0

你看過域名嗎?這個函數將json字符串轉換爲php對象或數組 – vodich 2013-03-15 07:31:55

回答

0

你是否已經有一個edit.php文件來處理POST請求?如果沒有,這個鏈接可能會幫助你。 http://edwin.baculsoft.com/2011/12/how-to-handle-json-post-request-using-php/

一旦edit.php被設置爲處理請求並返回數據,您可能會想要在響應函數中處理該數據。

$.post('edit.php', { items: JSON.stringify(oldItems) }, function(data) { 
    // Do something here, for example... 
    alert(data); 
}); 

希望這是你要找的。

+0

嘿大衛,謝謝你的回覆。我遇到的問題是我需要這些數據出現在PHP中,因此我可以將它連接到數據庫並更新數據庫。我無法在響應中使用PHP函數嗎? – user2162768 2013-03-16 13:49:12

+0

任何時間。 'edit.php'是顯示錶單的文件,還是應該處理表單的文件?無論您在$ .post()函數中放置的文件應該是像上面鏈接的鏈接那樣設置的文件,您可能需要創建一個「form-process.php」或其他內容。響應允許您訪問在調用jQuery'$ .post()'函數中指定的文件時返回的任何數據 – David 2013-03-16 17:13:26