php - 将数据从 PHP 脚本发送回 JQuery AJAX 请求

标签 php jquery ajax session session-variables

我正在创建一个 Web 应用程序,但遇到以下问题。

在我的应用程序中,用户在单个页面中工作,他们在 Canvas 上绘图。有一个名为“保存”的按钮。这将获取用户 ID 以及他们在 Canvas 中创建的任何内容,并将其发送到数据库。这一切都很好。保存功能类似于:

$.ajax({
    url: "/database/write.php",
    type: "POST",     
    data: { 
        docName: name,
        docData: document_Data,
        docMode: "new"
    }, 
    success: function(html) {
        alert("Successfully Saved NEW document");
        set_Mode();
    },          
});

上面的 AJAX 请求确实将三个值发送到 PHP 脚本,然后 PHP 脚本在数据库中成功创建了一个新文档,我现在需要做的是将应用程序模式从保存新文档更改为编辑以前保存的文档。这意味着当用户再次保存时,他们将写入同一行,覆盖文档的先前版本。

当我将数据发送到 write.php 时,它会将数据写入数据库,并在数据库中查询插入的文档并检索其唯一的文档 ID。使用该 ID,应用程序可以选择该文档并覆盖它。为了从查询中检索文档 ID,我在 write.php

中使用以下代码

write.php

$_SESSION['DOCUMENT_ID'] = $DOCUMENT_ID;

此 $DOCUMENT_ID 是从 SELECT 查询检索到的文档 ID。然后,脚本完成并将控制权传输回主应用程序页面。

返回应用程序页面,我尝试检索该值,但似乎不起作用。我可以检索用户首次访问应用程序 (id) 时设置的 $_SESSION 值,但现在由 write.php 设置的值( DOCUMENT_ID)页面。例如,下面显示了 AJAX 请求成功后调用的函数:

function set_Mode()
{
    var PHPvar_01 = <?php echo($_SESSION['id']); ?>;
    alert(PHPvar_01); //WORKS FINE

    var PHPvar_02 = <?php echo($_SESSION['DOCUMENT_ID']); ?>;
    alert(PHPvar_02); //DOES NOT WORK.          
};

我应该如何将从 PHP 查询脚本检索到的数据发送到应用程序,因为 $_SESSION 在这里似乎不起作用。

感谢您的任何反馈。

最佳答案

在 write.php 末尾:

echo json_encode(array('id'=>$_SESSION['id'], 'DOCUMENT_ID'=>$_SESSION['DOCUMENT_ID']));

在你的ajax调用中:

success: function(data) {
    data = eval('('+data+')');
    alert("Successfully Saved NEW document");
    set_Mode(data.id, data.DOCUMENT_ID);
},     

这应该可以解决问题!

关于php - 将数据从 PHP 脚本发送回 JQuery AJAX 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10504098/

相关文章:

php - Laravel 5.2 闪现消息不起作用

javascript - 如何使用 jquery 永久设置内容之前

javascript - 使用 ajax 比较两个 xml 值

php - NOT IN echo array() mysql php 中的两个 SELECT,一个 SELECT OK

php - 检查是否确实需要包含的 javascript 文件

javascript - jquery Tablesorter - 自然排序顺序?

背景上的jquery动画方法

javascript - Extjs 选项卡菜单从 Ajax 加载完整内容

ajax - 通过对话框提交的表单再次打开对话框

PHP:系统找不到指定的路径