如何通过ajax post响应到PHP
问题描述:
我有一个页面index.php - >它有php代码,jquery代码和php代码都在一个。如何通过ajax post响应到PHP
$.ajax({
url: url,
method: "post",
contentType: "application/json",
dataType: "json",
data: JSON.stringify(inputData),
success: function(data, status, xhr) {
if (data.result) {
// I want to store this data.result and pass it to PHP code below.
$("#some-form").submit();
} else {
// some code here
}
},
error: function(data, status, xhr) {
// Show a modal informing user of invalid
information
}
})
我在data.result的成功块中看到正确的数据。 我想这个值传递给我下面的PHP代码:
<?php
function buildRedirectUrl($url) {
return $url .
"&email=" . trim($_POST["email"]) .
"&state=" . trim($_POST["state"]) .
"&application_code=" .
trim($_POST["application_code"]);
// I want to add the data.result from success block here
// something like :
// "&result=" . trim($_POST["data.result"]) .
}
$redirectUrl = buildRedirectUrl($someUrl);
header('Location: ' . $redirectUrl);
?>
任何解决方案? 是否可以将数据从ajax调用传递给php? 任何示例都会有所帮助。我发现,访问inputParameters所有例子,但我没有看到任何例子,我怎么能在PHP中使用
答
注意:这个代码并不完整,只是一个概念。
我想如果你不得不这样做,
$.ajax({
url: url,
method: "post",
contentType: "application/json",
dataType: "json",
data: JSON.stringify(inputData),
success: function(data, status, xhr) {
if (data.result) {
//following 3 lines are new.
var elem = $("<input type='hidden' name='ajaxResult' />");
elem.val(data.result);
$("#some-form").append(elem);
// I want to store this data.result and pass it to PHP code below.
$("#some-form").submit();
} else {
// some code here
}
},
error: function(data, status, xhr) {
// Show a modal informing user of invalid
information
}
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
然后,你可以使用该结果在您的表单提交$POST["ajaxResult"]
+0
它没有给出任何错误,但它给了一个空白值 –
+0
它的工作,我在我的代码中犯了一个错字,非常感谢。 我感谢您的帮助! –
答
响应您可以动态创建一个表单并提交它像下面
$.ajax({
url: url,
method: "post",
contentType: "application/json",
dataType: "json",
data: JSON.stringify(inputData),
success: function(data, status, xhr) {
if (data.result) {
var method = "post";
var action = "site.com/index.php";
var form = document.createElement("form");
form.setAttribute("method", method);
form.setAttribute("action", action);
var hiddenField = document.createElement("input");
hiddenField.setAttribute("type", "hidden");
hiddenField.setAttribute("name", "field_name");
hiddenField.setAttribute("value", data.result);
form.appendChild(hiddenField);
document.body.appendChild(form);
form.submit();
} else {
// some code here
}
},
error: function(data, status, xhr) {
// Show a modal informing user of invalid
information
}
})
我猜,如果你删除'JSON.stringify'如果作品就好了?再说一遍,我不知道你在做什么? – adeneo
我能够做出成功的POST请求。我看到成功块中的正确结果。我想存储响应data.result并在我的PHP代码中访问它。 –
你为什么要这么做?您需要在提交之前将结果存储在'#some-form'中。为什么你会首先在ajax中做任何事情?只需使用inputData提交表单即可。 – Steve