2013-02-04 38 views
0

我有一個簡單的表單創建,它允許用戶添加和刪除行,他們選擇。在用戶確定要添加和填充表單的行數後,在提交後,我想發佈數據以便我可以使用.php腳本將數據上載到服務器上。將HTML表單數據發佈到php(調試)

我測試了添加和刪除行的功能。當我點擊提交按鈕時,它會將我重定向到upload.php,但在該頁面上,我看到一個錯誤:「未定義索引:獎勵」,這讓我認爲數據沒有正確發送。

下面我的實現有問題嗎?

HTML

<button onclick="addRow();">Add Row</button> 
<form method="post" action="upload.php"> 
    <table border="1" id="optionsTable"> 
     <tr> 
     <td>Header1</td> 
     <td>Header2</td> 
     <td>Delete</td> 
     </tr> 

     <tr id="templateRow" style="display:none"> 
     <td><input type="text" id="reward" /></td> 
     <td><input type="text" id="duration" /></td> 
    <td><input type="button" id="deleteOption" value="Delete"  onclick="delRow(this)"/></td> 
     </tr> 
    </table> 

    <input type="submit" value="Submit" /> 
</form> 

</body> 
</html> 

<script> 
var maxID = 0; 
function getTemplateRow() { 
    var x = document.getElementById("templateRow").cloneNode(true); 
    x.id = ""; 
    x.style.display = ""; 
    x.innerHTML = x.innerHTML.replace(/{id}/, ++maxID); 
    return x; 
} 
function addRow() { 
    var t = document.getElementById("optionsTable"); 
    var rows = t.getElementsByTagName("tr"); 
    var r = rows[rows.length - 1]; 
    r.parentNode.insertBefore(getTemplateRow(), r); 
} 
function delRow(row) { 
    var i=row.parentNode.parentNode.rowIndex; 
    document.getElementById('optionsTable').deleteRow(i); 
} 

</script> 

我只有調試與upload.php的現在所以只需要一個命令有: 回波($ _ POST [ '獎勵']);

任何幫助將不勝感激。

回答

3

您需要輸入定義名稱。

<input type="text" id="reward" /> 

TO

<input type="text" id="reward" name="reward"/> 
+0

您好,感謝您的幫助!我改變了你的建議,似乎有所幫助; .php正確執行。但是,$ _POST ['獎勵']似乎是空的。我用命令 \t進行了測試if(empty($ _ POST ['reward'])){ \t \t echo「EMPTY」; \t} 似乎數據沒有正確發送。有任何想法嗎? – Chimi

+0

@Chimi,它顯示你爲空,因爲你設置了style =「display:none」。刪除它,然後嘗試也許它會幫助你解決你的問題。 –

+0

謝謝。這部分解決了這個問題,但是當我回應時,我只得到最後一個結果而不是所有結果。有沒有一種方法,我可以把它作爲一個值的數組? – Chimi

3

輸入需要屬性name。例如: -

<input type="text" id="reward" name="reward" />