如何在 jscript 确认并通过 AJAX 调用 PHP 时更新 $_SESSION 值

How to get $_SESSION value updated when jscript confirm and call PHP by AJAX

经过大量尝试,我需要帮助。单击事件后,我检查数据库中是否存在数据,并使用 jscript 弹出确认框。

如何在我单击取消时让它工作,它没有显示我在 confirm.php 上设置的任何值?

确定并取消

jscript代码:

if($row_count2 > 0)
{
    if ($row2["Status"] == "REJECTED")
    {
    <script type="text/javascript">
        if (!confirm('Lot No has been REJECTED before.. Double confirm to add the Lot No!!')) {
        var option = "NO";
        $.ajax({
            type: "POST", 
            url: "confirm.php",
            data: "value="+option,
            success: function (data) {
                alert(data);
            }         
        });
    }
    </script>
    }
}

$ll = $_SESSION['Confirm'];
echo "<script type='text/javascript'>alert('$ll');</script>";

if ($row_count2 < 1 || ($_SESSION['Confirm'] = "YES"))
{
    //my insert query is here...
}

这是在里面 confirm.php:

<?php    
    session_start();
    
    $xx = $_REQUEST["value"];
    $_SESSION['Confirm'] = $xx;
    echo "<script type='text/javascript'>alert('$xx');</script>";
?>

我希望得到 $_SESSION['Confirm'] 的值为 NO

默认$_SESSION['Confirm']值为YES

alert(data) 显示 $xx 为 NO 但是当我在 if 条件下对 $_SESSION['Confirm'] 值发出警报时 在我的插入查询之前 $_SESSION['Confirm'] 值仍然是 YES

我没有使用 JScript 警报,这真的很麻烦。我最终使用了模态弹出警报。

<div class="modal-content">
    <div class="modal-header bg-secondary">
        <button type="button" class="close" data-dismiss="modal"></button>
        <h4 class="modal-title text-white ">Confirmation</h4>
    </div>
    <div class="modal-body">                    
        <div class="box-body">
            <form class="form-signin">
                <label for="txtLotNo" class="mr-sm-2 ml-sm-4">Lot No : '.$lotNo.' has been REJECTED before.. Double confirm to add the Lot No!!</label>                   
                <br>
                <div class="text-center">
                    <button type="button" id="getAdd" class="btn btn-warning btn-sm" data-toggle="modal" data-target="#myAdd" data-id="YES'.$lotNo.$newLotNo.'" >YES</button>
                    <button type="button" id="getAdd" class="btn btn-warning btn-sm" data-toggle="modal" data-target="#myAdd" data-id="NO" >NO</button>
                </div>
            </form>
        </div>
    </div>
</div>

然后我使用可以完美处理数据 ID 的 JScript 调用一个 php 文件..

    <script>
        $(document).on('click','#getAdd',function(e){
            e.preventDefault();
            var per_id=$(this).data('id');
            //alert(per_id);
            $('#add-data').html('');
            $.ajax({
                url:'addLot_func.php',
                type:'POST',
                data:'id='+per_id,
                dataType:'html'
            }).done(function(data){
                $('#add-data').html('');
                $('#add-data').html(data); 
            }).fail(function(){
                $('#add-data').html('<p>Error</p>');
            });
        });
    </script>   

在addLot_func.php中:

    if(isset($_REQUEST['id'])){
        $id=intval($_REQUEST['id']);

        $reject = $_REQUEST['id'];
    }
    else $reject = "";

    if(substr($reject,0,3) == "YES")
    {
        ...
    }
    else
    {
        ...
    }