我只想接收数组并打印由jquery.post()
我的HTML-JS
<input type="submit" id="myButton" />
<script type="text/javascript">
var arr = new Array();
arr[0] = "Ding";
arr[1] = "Dong";
arr[2] = "Bong";
var json_string= JSON.stringify(arr); // convert it into a json string.
//and sending the data to server. temp.php.
$("#myButton").click(function(){
$.post('temp.php' , {json : json_string },function(data){
location.href = "temp.php";
});
});
</script>
我已alert()
检查数据发送是否成功。按钮点击页面也会重定向到temp.php
我的php页面temp.php
<?php
$json_string = $_POST['json']; //geting the post request. //this is line 3
$array_items = json_decode($json_string); //converting json string to a php array.
echo $array_items[0]; //just to print 1st element of array
?>
应打印Ding
。但是我收到了错误
Undefined index: json in C:\wamp\www\phpJSarray\temp.php on line 3
我在temp.php页面中的错误是什么?请帮帮我。
答案 0 :(得分:4)
在您的onclick或表单提交上调用此javascript但是你喜欢。
var arr = new Array();
arr[0] = "Ding";
arr[1] = "Dong";
arr[2] = "Bong";
var json_string = JSON.stringify(arr); // convert it into a json string.
$("#data").val(json_string);
$("#form1").submit(); //and sending the data to server. temp.php.
HTML:
<form action="temp.php" id="form1" method="POST">
<input type="hidden" id="data" name="data">
</form>
temp.php
$dataArray = json_decode($_POST['data']);
答案 1 :(得分:2)
<script>
$(document).ready(function() {
$("#myButton").on( 'click', function () {
$.ajax({
type: 'post',
url: 'temp.php',
data: {
arr1: "Ding",
arr2: "Dong",
arr3: "Bong",
},
success: function( data ) {
console.log( data );
}
});
});
});
</script>
然后你可以通过$_POST['arr1'];
来调用它。我希望这能解决你的问题。
答案 2 :(得分:2)
$ .post正在当前页面上进行AJAX调用...这没有明显的效果,因为一旦完成,location.href = "temp.php";
会将你重定向到temp.php。
如果您想对temp.php发布POST,您可以通过普通表单进行操作。如果需要,使用jQuery将隐藏的输入元素的值设置为json_string(或者更好的是,让jQuery将表单数据更改为JSON)。
答案 3 :(得分:0)
通过AJAX将数据发送到temp.php
并返回成功的响应后,重定向到temp.php
并发生空POST。这就是重定向后没有数据的原因。
您还应该检查temp.php
中是否存在数组元素:
<?php
if (isset($_POST['json'])) {
$json_string = $_POST['json'];
$array_items = json_decode($json_string);
echo $array_items[0];
}
?>