【发布时间】:2014-12-23 17:43:57
【问题描述】:
以下代码是我的原始代码。在代码中,我尝试为每个选中的复选框发布输入值。
<tbody class="myFormSaldo">
<tr>
<td> <input name="checkbox['.$i.']" type="checkbox" value="'.$i.'" id="chb'.$ref.'" onchange="enableList(this);" class="chb_group" /> </td>
<td> <input name="items['.$i.']" type="text" readonly value="'.$obj->items.'" /> </td>
<td> <input name="size['.$i.']" type="text" readonly value="'.$obj->size.'Kg" /> </td>
<td> <input name="quantity['.$i.']" type="text" readonly value="'.$obj->myquantity.'" /> </td>
if($_SERVER["REQUEST_METHOD"] == "POST") {
foreach($_POST['checkbox'] as $i) {
$product_name=$_POST['items'][$i];
$product_size=$_POST['size'][$i];
上面的代码运行良好。它为每个选中的复选框发布每个输入的值。例如;如果选中了三个复选框并提交了表单,那么它将发布三个数组(3 个循环):$product_name、$product_size 等。
我现在想要的是使用 Ajax。像这样:
var product_name= document.getElementById('product_name').value;
var product_size = document.getElementById('product_size').value;
$.ajax(
{
type: "POST",
url: "../actions/selectReferenceOrder.php",
data: product_name='+product_name+'&product_size ='+product_size ,
cache: false,
success:function(html)
{
document.getElementById('outputReference').innerHTML = html;
}
});
但它不计数或找不到复选框
所以我现在的问题是如何在 ajax 中使用 foreach($_POST['checkbox'] as $i) 做与 php 相同的操作?
我只是所有这些事情的初学者。
感谢您的帮助。
【问题讨论】:
-
尝试使用
$('#form_id').serialize()。 -
@Ghost,感谢您的快速想法。您能否逐步展示/教我如何做到这一点?
-
你也可以使用jquery表单插件将表单槽的所有信息通过ajax发送到表单操作页面
-
如果复选框是标记名,另一种可能性是`document.getElementsByTagName("checkbox")`
-
@klaudia 尝试使用以下lolka的方式,将序列化的表单值加载到jquery中的
data:。然后在 PHP 中像往常一样调用您的 POST 值。如果您想确保使用print_r($_POST);,以便您可以调试并可以预期在 POST 中处理什么。
标签: javascript php jquery ajax checkbox