[英]How to get an array value from php via jquery/ajax and pass it to another php file?
这是我的PHP代码, $contents
必须在change事件之后传递。
<?php
if($flag == true){
$contents = $store; // this is the array that needs to be passed
$color = array();
foreach($store as $item){
$color[] = $item['color'];
}
$u_color = array();
$u_color = array_unique($color);
echo '<label>Available Colors:</label>
<select id="color">
<option>Select a color</option>';
foreach($u_color as $item){
echo '<option>'.$item.'</option>';
}
echo '</select>';
}
?>
这是我的jquery / ajax代码,应该在change事件之后触发
$(function () {
$('#color').live('change', function () {
var data = <? php echo json_encode($contents); ?> ;
var the_array = $.parseJSON(data);
$.ajax({
url: 'wp-content/themes/twentyeleven-child/receiver.php',
type: 'post',
data: {
data: the_array
},
datatype: 'json',
success: function () {
}
});
});
});
这是我的receiver.php
<?php
print_r($_POST['data']);
?>
这是包含我的$contents
:
Array
(
[0] => Array
(
[size] => 2
[price] => $59.00
[color] => Black
)
[1] => Array
(
[size] => 4
[price] => $59.00
[color] => Black
)
[2] => Array
(
[size] => 6
[price] => $59.00
[color] => Black
)
[3] => Array
(
[size] => 8
[price] => $59.00
[color] => Black
)
[4] => Array
(
[size] => 10
[price] => $59.00
[color] => Black
)
[5] => Array
(
[size] => 12
[price] => $59.00
[color] => Black
)
[6] => Array
(
[size] => 14
[price] => $59.00
[color] => Black
)
[7] => Array
(
[size] => 16
[price] => $59.00
[color] => Black
)
)
尝试这个
var the_array = $array.join() ;
将以逗号分隔的字符串加入数组,并且可以将其传递给Ajax请求。
否则,您可以序列化数组并将arrayobject也传递给您的Request,
vat the_array = $array.serializeArray();
我在这里看不到实际的Ajax请求...使用$.ajax
...或$.post
...或$.get
编辑和添加:
var data = '<?php echo json_encode($array);?>'; var the_array= $.parseJSON(data);
一个完整的例子:
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js" type="text/javascript"></script>
</head>
<body>
<?php
$array = array();
$array['id'] = '2335';
$array['data'] = 'data string';
?>
<script type="text/javascript">
$(function() {
var data = '<?php echo json_encode($array);?>';
var the_array = $.parseJSON(data);
// keep in mind that the_array is Object not Array
// may be you should convert it to an Array
// other way is to post 'data' adding it to array var the_array = ('data': data);
});
</script>
</body>
</html>
您可以使用jQuery.ajax()通过POST将数组发送到服务器(这是您的代码丢失了一部分)
$.ajax({
type: 'POST',
url: 'receiver.php',
data: { myarray: the_array },
success: function(data){
// executed on success
},
dataType: dataType
});
如果要将一些代码传递给呈现的PHP模板中的js,请使用json_encode()
将PHP数组/对象“转换”为JavaScript Object Notation字符串:
<script>
var the_array = <?php print json_encode($the_array); ?>;
// ...
</script>
如果您希望receiver.php
将一些json返回给调用者(例如成功函数),则只需将其打印出来即可
<?php
// .. do stuff here ..
header('Content-type: application/x-json');
print json_encode($the_array);
?>
然后,您将success:
“自动”获取$the_array
作为data
success:
回调。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.