我正在尝试使用ajax将一些数组值传递给php页面。这是我尝试过的。但它只传递第一个值。不是所有的数组值
<script>
function priceSub() {
var price = $("input[name='price[]']").val();
$.post('db_price.php', {prce:price});
return true;
}
</script>
<?php //this is come from another page
$itemCount = count($_POST["price"]);
for($i=0;$i<$itemCount;$i++) {
$op_name=$_POST['price'][$i];
?>
<input type="hidden" value="<?php echo $price;?>" name="price[]" id="price"/>
<?php
}
?>
<input type="submit" value="Submit" class="suboderbtn" onclick="return priceSub();"/>
答案 0 :(得分:0)
您需要知道的第一件事是{prce:price}
,并使用$_POST['price']
,因此您需要使用{price:price}
。
但是,您可以通过ajax发送任意数量的数据:
$.post('db_price.php', {price:price, data1: "value1", data2: "value2",...});
您可以在php脚本中使用$_POST['price']
,$_POST['data1']
,$_POST['data2']
,...来访问数据。
修改强>
您无法使用一个文本字段发送数组。为此,您可以使用,
分隔值并展开php脚本中的值。例如,文本字段值可以是“value1,value2”。现在您可以使用此代码获取数组值:
$prices = explode(",", $_POST['price']);
现在$prices[0]
将为“value1”,$prices[1]
将为“value2”。
答案 1 :(得分:0)
尝试使用json_encode函数:
$.post('db_price.php', <?php json_encode($_POST["price"]); ?>);
答案 2 :(得分:0)
这样做是为了发布数组字段 的Javascript
<script>
function priceSub() {
var price = $('input#price').serialize();
console.log(price)
$.post('db_price.php', {price:price});
return true;
}
</script>
HTML
<input type="hidden" value="10" name="price[]" id="price"/>
<input type="hidden" value="20" name="price[]" id="price"/>