将ajax响应值分配给PHP变量

将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',

我从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"
}]
在控制台中显示[对象]

如何将上述值分配给同一页面中的以下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
?>