我需要在成功调用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尚未更新。 我做错了什么?
答案 0 :(得分:0)
您的$ final_path变量无法更新,因为此时已完成php页面的执行。服务器处理完页面后,PHP变量不会保留在内存中。
如果您需要在服务器端使用此值进行进一步处理,则需要将其存储在用户会话中,或者保留在生成的ajax调用中获得的值,并将其作为POST数据发送给您打电话给你的下一个php页面。