我从AddSomething.php
文件调用ajax,如下所示
<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"
}]
在控制台中显示[Object]
如何将上述值分配给同一页面中的以下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);
?>
答案 0 :(得分:2)
您无法将Ajax调用的结果分配给PHP变量。 PHP已经在服务器上运行,完成它并将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);
答案 1 :(得分:1)
您可以将ajax result div
嵌入php tag
<?php
$result='<div id="result"></div>';// Here you embed div in php tag and store in php varible
?>
答案 2 :(得分:0)
你不能按照自己的方式做这项工作。
为此,您需要将返回值分配给任何隐藏的字段表单值并提交表单。
还要记住ajax响应数据保留在js变量中,需要传递参数async:false