2016-07-15 57 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更新的答案是否适合您? –