2016-07-15 54 views
-1

這是有點的第二部分我的「複製」在這裏:Why does this multiple row table submit by row? Is this correct?多行表沒有提交後陣列

我修改了原代碼:

<tr> 
    <td><input type='text' name='first' value='mark'></td> 
    <td><button type='submit'name='editbutton' value='1'>Edit</button></td> 
</tr> 
<tr> 
    <td><input type='text' name='first' value='luke'></td> 
    <td><button type='submit'name='editbutton' value='2'>Edit</button></td> 
</tr> 
<tr> 
    <td><input type='text' name='first' value='john'></td> 
    <td><button type='submit'name='editbutton' value='3'>Edit</button></td> 
</tr> 

到:

<tr> 
    <td><input type='text' name='first[1]' value='mark'></td> 
    <td><button type='submit'name='editbutton[1]' value='1'>Edit</button></td> 
</tr> 
<tr> 
    <td><input type='text' name='first[2]' value='luke'></td> 
    <td><button type='submit'name='editbutton[2]' value='2'>Edit</button></td> 
</tr> 
<tr> 
    <td><input type='text' name='first[3]' value='john'></td> 
    <td><button type='submit'name='editbutton[3]' value='3'>Edit</button></td> 
</tr> 

在閱讀帖子時,我希望看到一個$ _POST(php)數組包含兩個主要索引:

['first'] => Array([1] => 'mark', [2] => 'luke', [3] => 'john'), 
['editbutton'] => Array([1] => '1', [2] => '2', [3] => '3') 

這不是我得到的。 'name'索引構造正確,但提交按鈕索引'editbutton'僅包含一個元素,即按下按鈕的值。我想指望這一點,但這是正確的還是我再次指望當前服務器的行爲?

感謝。對不起,如果我在這裏擊敗一匹死馬。

+0

我獲得了這個獎的風滾草獎!無論如何,我認爲這是一個合法的問題。我遵循給出的指示並創建了數組,我對結果感到驚訝。我閱讀了似乎適用的規範,但它超出了我的頭。請問,這是否是官方的,陣列提交不按鈕的提交按鈕是否爲「空」且未發送? – user116032

回答

0

至於你的問題,我認爲你可以依靠它。請參閱http://www.w3schools.com/tags/tryit.asp?filename=tryhtml_button_name 上的頁面表單上提供了兩個按鈕,但每次提交表單時服務器端只會收到一個值。因此,據我所知,至少PHP和ASP只接受一個提交按鈕值。但是從這個問題的答案接受 How $_POST workshttps://developer.mozilla.org/en-US/docs/Web/Guide/HTML/Forms/Sending_and_retrieving_form_data

我們可以看到,它實際上是由瀏覽器定義的,這意味着從瀏覽器發送出來的數據實際上並不包括任何其他提交按鈕值。所以我認爲我安全地認爲所有其他語言都不會收到第二次提交按鈕的值,因爲它從未從您的Web瀏覽器發出。

+0

最後。這裏是50.謝謝。 – user116032

+0

:-),很高興我能幫上忙 –

0

向表中添加單擊事件偵聽器。使用JavaScript,將值this和兄弟姐妹推入數組並將其POST。如果問題涉及事件冒泡。不要忘記在您的監聽器中包含(e)事件參數。

請勿使用input type="submit"的表格。使用vanilla XHR。用click事件監聽器觸發它。

xhttp.open(「POST」,「ajax_test.asp」,true);

xhttp.send(「fname = Henry & lname = Ford」);

+0

我實際上使用jquery來驅動這個表,但我想知道提交按鈕數組的人口是否是標準行爲。 – user116032

+0

你不需要一個按鈕只需點擊行。但是如果你想在表上按鈕'getElementsByTagName('button')'來獲得按鈕索引。然後你有索引號的行來獲取數據。不需要硬編碼[1],[2]等。我提到的使用方法給你一個數組。 –

+0

@ user116032更新的答案是否適合您? –