我有一个数组,它填充了javascript代码。当点击确认按钮时,我需要在php端达到这个数组的值。所以,我使用ajax post方法如下。它运行成功,我知道因为所有警报都成功运行。这是我的代码的一部分。
$('#firstConfirmButton').click(function(){
var my_json_val = JSON.stringify(ordersArray, null);
alert(my_json_val.toString());
$.ajax({
type: "POST",
url: "test.php",
data: my_json_val,
cache: false,
contentType: false,
async: false,
processData: false,
success: function(response){
//alert("---"+data);
alert("Settings has been updated successfully.");
alert(my_json_val);
alert(response);
window.location.reload(true);
}
});
});
另一方面,我有一个test.php页面,它还包含使用上面的js代码的“确认”按钮。单击此按钮时,我想要回显我使用ajax发布的数组的值。但我不能在php方面获得价值。这是我的PHP代码;
<?php
require("includes/db.php");
require("includes/functions.php");
session_start();
if (isset($_POST['firstConfirmButton'])) {
echo 'I am here'; //I can see only this row on php page
$my_json_encoded = $_POST['data'];
$my_json_val = json_decode($my_json_encoded);
echo $my_json_val; //nothing happens
}
这是我确认按钮的html代码;
<form role="form" method="post" action="starbucks.php">
<div id="firstConfirmButton">
<button type="submit" name="firstConfirmButton" id="firstConfirmButton" class="btn btn-primary btn-lg">Onayla</button>
</div>
那我的错在哪里,请帮忙!
答案 0 :(得分:0)
不要将数组转换为Json,ajax帖子会自行投射,所以将my_json_val
替换为ordersArray
。
答案 1 :(得分:0)
你真的想重定向到你的php文件,还是只需要来自它的数据?因为action =&#34; file.php&#34;重定向到此文件。如果您只需要数据,请尝试使用jquerys .submit方法并执行ajax调用,否则使用它来重新设置您的action属性(为简单起见,如果您的网站上有多个表单,我会在表单上使用id):
$('#yourform').submit(function(){
var my_json_val = JSON.stringify(ordersArray, null);
var elem = {
firstConfirmButton: true,
data: my_json_val
}
$.ajax({
type: "POST",
url: "test.php",
data: elem,
cache: false,
contentType: false,
async: false,
processData: false,
success: function(response){
//alert("---"+data);
alert("Settings has been updated successfully.");
alert(my_json_val);
alert(response);
}
});
return false;
});
如果您确实想要重定向,请尝试使用:
$('#yourform').submit(function(ev){
var my_json_val = JSON.stringify(ordersArray, null);
$(this).attr('action', ev.target.action+'?data="'+my_json_val+'"');
});