加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

PHP变量在后续的AJAX调用中返回“default”

发布时间:2020-12-13 22:24:55 所属栏目:PHP教程 来源:网络整理
导读:我试图在另一个if语句中使用变量集,但它继续返回undefined.这是 PHP代码: if(isset($_POST['bookingTime'])){ $bookingTime = $_POST['bookingTime']; $bookingDate = $_POST['theDate']; $dbDateTime = $bookingDate." ".$bookingTime; echo json_encode($
我试图在另一个if语句中使用变量集,但它继续返回undefined.这是 PHP代码:

if(isset($_POST['bookingTime'])){
    $bookingTime = $_POST['bookingTime'];
    $bookingDate = $_POST['theDate'];
    $dbDateTime = $bookingDate." ".$bookingTime;
    echo json_encode($dbDateTime);
    exit;
}

if(isset($_POST['bookingPwd'])){
    $pwd = $_POST['txtBookingPwd'];
    //Get the $dbDateTime variable???
    echo $pwd;
}

$dbDateTime变量被设置为对AJAX请求的响应,并且返回jQuery很好,但我需要变量用于数据库查询.如何在其他if语句中使用该变量?在我对php的理解中,我觉得我遗漏了一些非常基本的东西.我试过全局,但没有运气.

更新

删除出口没有区别. $dbDateTime变量仍未显示在第二个if语句中.这是我运行测试的PHP代码:

if(isset($_POST['bookingTime'])){
    $bookingTime = $_POST['bookingTime'];
    $bookingDate = $_POST['theDate'];
    $dbDateTime = $bookingDate." ".$bookingTime;
    // echo json_encode($dbDateTime);
    // exit;    
}

if(isset($_POST['bookingPwd'])){
    $pwd = $_POST['txtBookingPwd'];
    //Get the $dbDateTime variable???
    echo $dbDateTime;
    echo $pwd;
    $booking->newBooking($dbDateTime,$pwd);
}

该变量是从AJAX请求设置的,其中从HTML表中获取时间值.然后打开一个模态,供用户输入他/她的密码,以便在选定的时间预订法庭.我想也许PHP不存储值,因为变量是在不同的操作中设置的?

第二次更新

会话有效,但尝试通过下一个AJAX调用传递$dbDateTime的值.这是jQuery代码:

var bookingTime;
var dbDatetime;

$('.courtBook').click(function() {
    // Find the row
    var $row = $(this).closest('tr');
    // Find the text
    var bookingTime = $row.find('.courtTime').text()+":00";
    var theDate = $('#theDate').text();

    $.ajax({
        url: 'index.php?page=booking',type: 'POST',dataType: 'json',data: {'bookingTime': bookingTime,'theDate': theDate},success: function(data){
            var dbDatetime = data;
            alert(dbDatetime);
        },error: function(){
            alert('Much wrong,such sad');
        }
    });
});

$('#btnBookingPwd').click(function(){
    console.log(bookingTime);
    console.log(dbDatetime);
});

在最后一次单击功能中,变量未定义.那么,这在jQuery中如何工作?

解决方法

您的HTML页面和PHP脚本不会交换有状态数据.

每当您的AJAX代码在HTML页面中运行时,它都会对PHP脚本进行新的调用.每次调用PHP脚本时,变量都会根据代码以默认状态开始.如果你想使用一个AJAX调用中的变量到下一个,你必须在下次调用PHP脚本时发送它.

尝试将dbDateTime的值作为参数添加到后续的AJAX调用中,我认为您将走上正确的轨道.

更新

你的AJAX几乎就在那里.尝试删除var:

success: function(data){
        var dbDatetime = data;
        alert(dbDatetime);
    },

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读