Javascript 用复选框包装一些输入并发送到数据库
问题是“如何选择与选中复选框位于同一行中的所有输入元素?” (此处“[]”是一个复选框) 选中某些列表时,则选中其行上的所有(输入) 然后,如何提交复选框,例如,如果有两个复选框被选中,那么这两个复选框中的所有输入都将发送到数据库中的一个表中Javascript 用复选框包装一些输入并发送到数据库,javascript,php,html,mysql,Javascript,Php,Html,Mysql,问题是“如何选择与选中复选框位于同一行中的所有输入元素?” (此处“[]”是一个复选框) 选中某些列表时,则选中其行上的所有(输入) 然后,如何提交复选框,例如,如果有两个复选框被选中,那么这两个复选框中的所有输入都将发送到数据库中的一个表中 请告诉我怎么做。提前感谢你的帮助 对于这个HTML来说,这并不难: <table> <thead> <tr> <th>Mark</th>
请告诉我怎么做。提前感谢你的帮助 对于这个HTML来说,这并不难:
<table>
<thead>
<tr>
<th>Mark</th>
<th>Name</th>
<th>Qty</th>
<th>Price</th>
</tr>
</thead>
<tbody>
<tr>
<td><input type="checkbox" name="id[1]" /></td>
<td><input type="text" name="name[1]" /></td>
<td><input type="text" name="quantity[1]" size="3" /></td>
<td><input type="text" name="price[1]" size="3" /></td>
</tr>
<tr>
<td><input type="checkbox" name="id[2]" /></td>
<td><input type="text" name="name[2]" /></td>
<td><input type="text" name="quantity[2]" size="3" /></td>
<td><input type="text" name="price[2]" size="3" /></td>
</tr>
<tr>
<td><input type="checkbox" name="id[3]" /></td>
<td><input type="text" name="name[3]" /></td>
<td><input type="text" name="quantity[3]" size="3" /></td>
<td><input type="text" name="price[3]" size="3" /></td>
</tr>
<tr>
<td colspan="4"><input id="save" type="button" value="Submit" /></td>
</tr>
</tbody>
</table>
<h3>Post data:</h3>
<div class="submit_data">click Submit...</div>
在PHP中,发布的变量是数组,如下所示:
[id] => Array
(
[1] => on
[3] => on
)
[name] => Array
(
[1] => My name 1
[3] => My name 3
)
[quantity] => Array
(
[1] => 100
[3] => 50
)
[price] => Array
(
[1] => 23.34
[3] => 15.23
)
您可以通过以下方式浏览它们:
foreach( $_POST['id'] as $id=>$on ) {
echo 'ID: ' . $id . '<br />';
echo 'Name: ' . $_POST['name'][$id] . '<br />';
echo 'Qty: ' . $_POST['quantity'][$id] . '<br />';
echo 'Price: ' . $_POST['price'][$id] . '<br />';
echo '<hr />';
};
请注意:在某些设备上,通常需要关闭jQuery缓存:
$.ajaxSetup({ cache: false });
或特定职位:
$.ajaxSetup({
type: 'POST',
headers: { "cache-control": "no-cache" }
});
你在哪里被自己的尝试卡住了?您是否能够或愿意使用JavaScript库?(不需要使用库,我只是想如果没有在项目中使用,我会先回答“很简单,这里是jQuery!”问题。)顺便说一句:
元素是无效元素,它们不能“包含”任何其他元素或任何文本。第二,你的HTML是什么,你所说的“选择”是什么意思,最后,这是一个非常广泛的问题(这是一个不好的迹象):在这个多方面的问题中,你需要帮助的是哪一部分?当然,我正在寻找一种聪明的方法来实现这一点。由于我不知道如何做到这一点,这就是我标记所有编程语言的方式,这可能是如何做到这一点的方式。重点是只提交所有检查。缩小您的问题到更小的步骤。首先,我建议将此问题限制为:“如何选择与复选框位于同一行中的所有输入元素?”(例如,但这仍取决于“选择输入元素”的含义)。一旦问题解决,然后进入下一步(如果还没有关于该步骤的问题,则使用新问题). 另外:向我们展示你的尝试,展示你的研究,向我们展示你的HTML。事实上,这似乎是你在问我们如何为你构建网站的一个方面(我希望不是真的)。你可以将其视为一个普通的表单提交,只需获取ID。非常感谢你,skobaljic。现在如果我想发布它,如果我这样做,所有复选框都会被发布吗?:$name=$\u post['name']$数量=$_POST[“数量”]$价格=$_POST['price']
No,$\u POST['name']
将是一个数组,因此您可以将foreach($\u POST['name']作为$id=>$name){}代码>。你能给我一个完整的例子吗?用var\u dump($\u POST)来确保所有选中的行都被发布了吗?我仍然有点困惑如何做到这一点,特别是当它必须将javascript与php相结合时。我确实需要帮助,因为我一个人工作。
ID: 1
Name: My name 1
Qty: 100
Price: 23.34
------------------
ID: 3
Name: My name 3
Qty: 50
Price: 15.23
------------------
$.ajaxSetup({ cache: false });
$.ajaxSetup({
type: 'POST',
headers: { "cache-control": "no-cache" }
});