以下代码是我的原始代码。在代码中,我尝试为每个选中的复选框发布输入值。
<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相同的事情?
我只是所有这些事情的初学者。
感谢您的帮助。
最佳答案
您将product_name
用作字符串,而不是变量:
试试这个:
data: 'product_name='+product_name+'&product_size='+product_size,
或者,正如 Ghost 在评论中悲伤一样,使用 formdata。
var dataString = $('form').serialize();
以及稍后,在 ajax 中:
data: dataString,
...
关于javascript - 在 Ajax 中发送复选框值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27616870/