成功ajax调用

时间:2018-04-10 16:31:49

标签: javascript php ajax

我需要在成功调用ajax后更改php变量。我该怎么做?

我有一个更新数据库和目录中路径名目录的函数。所以,我在页面的开头有一个php变量,它获取文件的路径。这称为$ final_path。

<?php
$path_directory = trim($pathDAO->path_dir($id_pag)[0]->path);
$final_path = trim('http://www.test.com/content/'.$path_directory);
?>

我在html中放了一个隐藏的div:

<div id="dir_path" hidden="true"><?php echo $final_path; ?></div>

因此,当您更改目录名称时,我会调用ajax函数,如下所示。 成功后请注意,php变量应该更新,但不会发生。

$.ajax({
    type:'POST',
    url: 'change_name.php',
    data: {id: uid, name: uname},
    dataType: 'html',
    success: function (data) {
                var data_path = data.split("||");
                var result = $.trim(data_path[0]);
                var result_a = $.trim(data_path[1]);

                if(result === "success") {

                    document.getElementById("dir_path").value = result_a;
                    document.getElementById("dir_path").innerHTML = result_a;

            }
});
return false;

在Ajax函数中,我更新路径名并返回结果(成功或失败)和新路径目录。

$success = $updatePath ->update($_POST['id'], $_POST['name']);
$path_directory = trim($pathDAO->path_dir($_POST['id'])[0]->path);

$path_dir = trim('http://www.test.com/content/'.$caminho_diretorio);

$result = $success.'||'.$path_dir;

echo $result;

这很好用。但变量$ final_path尚未更新。 我做错了什么?

1 个答案:

答案 0 :(得分:0)

您的$ final_path变量无法更新,因为此时已完成php页面的执行。服务器处理完页面后,PHP变量不会保留在内存中。

如果您需要在服务器端使用此值进行进一步处理,则需要将其存储在用户会话中,或者保留在生成的ajax调用中获得的值,并将其作为POST数据发送给您打电话给你的下一个php页面。