将ajax响应值分配给PHP变量
我从AddSomething.php文件调用ajax,如下所示将ajax响应值分配给PHP变量,php,jquery,ajax,mysqli,Php,Jquery,Ajax,Mysqli,我从AddSomething.php文件调用ajax,如下所示 <script> var dataValue; $("#schedule").change(function () { var value = $('#schedule option:selected').text(); var ajaxCheck = $.ajax({ url: 'processClg.php',
<script>
var dataValue;
$("#schedule").change(function () {
var value = $('#schedule option:selected').text();
var ajaxCheck = $.ajax({
url: 'processClg.php',
type: 'POST',
dataType: 'json', // processClg.php will return string means change to text
data: { id: value },
success: function(data){
dataValue = data;
console.log(dataValue);
}
});
});
</script>
[{
"id": "2",
"scheduleName": "abc",
"subject": "Patho",
"university": "xyz",
"facultyName": "Dr",
"scheduleStartDate": "2015-06-05",
"scheduleEndDate": "2015-06-09"
}]
在控制台中显示[对象]
如何将上述值分配给同一页面中的以下PHP变量
<?php
$scheduleStartDate ='';//Here How can i assign respected ajax responsevalue
$scheduleEndDate = '';//Here How can i assign respected ajax response value
$qry = "SELECT * FROM `mytable`
WHERE `university` LIKE ''//Here How can i assign value
ORDER BY `university` DESC,student_name ASC";
?>
processClg.php文件代码
<?php
include "config.php";
$qry = "SELECT * FROM `schedule` WHERE scheduleName LIKE '".$_POST['id']."'";
$res = mysqli_query($link, $qry);
//echo $res;
while($row = mysqli_fetch_assoc($res))
$test[] = $row;
echo json_encode($test);
?>
不能将Ajax调用的结果分配给PHP变量。PHP已经在服务器上运行,完成了它的bit并将HTML/JavaScript发送到浏览器。此时,您不能再使用PHP,因为它是一种服务器端语言,只能在服务器上运行。Ajax使用JavaScript,这是一种客户端语言。它仅在PHP完成并且服务器将HTML/JavaScript发送到用户浏览器后运行。JavaScript在客户端浏览器中执行 你需要重新思考你在做什么,在哪里做。如果需要Ajax调用的结果在PHP中执行某些操作,请在processClg.PHP文件中执行。首先执行所有PHP操作,然后向浏览器发送响应以向用户显示某些内容。如果用户不需要任何形式的确认或确认,那么您只需发送Ajax请求,而不必理会响应 看起来您正在尝试动态加载一些大学信息。你应该做的是把这部分:
$scheduleStartDate ='';//Here How can i assign respected ajax responsevalue
$scheduleEndDate = '';//Here How can i assign respected ajax response value
$qry = "SELECT * FROM `mytable`
WHERE `university` LIKE ''//Here How can i assign value
ORDER BY `university` DESC,student_name ASC";
在第一次查询后输入processClg.php。然后获得查询结果并将其传递回HTML页面,如下所示:
$results = array();
$qry = "SELECT * FROM `mytable`
WHERE `university` LIKE ''
ORDER BY `university` DESC,student_name ASC";
$result = mysqli_query($link, $qry);
while ($row = mysqli_fetch_assoc($result))
{
$results[] = $row;
}
echo json_encode($results);
你不能按你想的那样做这项工作 为此,您需要将返回值分配给任何隐藏字段表单值并提交表单
还要记住,对于保存在js变量中的ajax响应数据,您需要传递参数async:false您可以通过将ajax result div嵌入php标记将ajax结果存储在php变量中
不能将Ajax调用的结果分配给PHP变量。PHP已经在服务器上运行,完成了它的bit并将HTML/JavaScript发送到浏览器。此时,您不能再使用PHP,因为它是一种服务器端语言,只能在服务器上运行。Ajax使用JavaScript,这是一种客户端语言。它仅在PHP完成并且服务器将HTML/JavaScript发送到用户浏览器后运行。JavaScript在客户端浏览器中执行。我知道PHP在服务器端运行,JavaScript在客户端运行,但应该有办法,请建议我如何实现im我的案例我正在调用select$schedule.changefunction上的ajax{并希望将响应分配给上述查询的where条件和PHP变量$scheduleStartDate=;和$scheduleEndDate=;是否有任何方法可以实现这一点请向我推荐任何方法know@Nag,我在上面的回答中这样做了。将查询移动到processClg.php.var result;$.ajax中{type:POST,async:false,url:url,data:postdata,//dataType:json,success:function data{result=data;}};result=jQuery.parseJSONresult;$'startDate'.valresult.startDate;$'endDate'.valresult.endDate;表单如下所示:
<?php
$result='<div id="result"></div>';// Here you embed div in php tag and store in php varible
?>