我有一个HTML表单,它使用下拉列表中的选项来填充mySQL表,但是使用jQuery / AJAX调用外部php文件来更新原始表单下方输入行的显示。
表单的目的是一个订单输入系统,因此工作:选择一个项目,看它添加到列表中。我有的问题是,除了显示输入的项目,我想显示总订单价值更新。我以为我可以使用PHP会话变量,但除非刷新原始页面,否则这似乎不起作用。
因此,我的问题是:有没有办法从我的外部php文件以及我追加到显示页面的HTML中获取会话变量(或任何其他类型的变量)?
如果有帮助,这就是我在添加新行时用来调用外部php的代码:
$.ajax({
type: "POST",
url: "ajaxInsertOrderLine.php",
data: dataString,
cache: false,
success: function(html){
$("#orderItems").append(html);
document.getElementById('inputStockNo').value='';
document.getElementById('qty').value='';
document.getElementById('totalAmount').value="<?php echo $_SESSION["totalValue"]; ?>";
}});
其中“ajaxInsertOrderLine.php”是外部文件,'inputStockNo'和'qty'是发送到脚本的两个表单变量,并在成功插入后归零。
答案 0 :(得分:4)
您可以以数组的形式将许多值传递回jQuery脚本。例如,我可以通过以下内容:
session_start(); // necessary for getting/setting SESSION data
print json_encode(array(
"username" => $_SESSION["username"],
"msgCount" => 0,
"userHTML" => "<p>There are no new messages</p>";
));
然后从您的jQuery代码中,您将使用JSON数据检索方法:
$.post("page.php", {}, function(results) {
alert(results.username + " has " + results.msgCount + " messages.");
$("messages").append(results.userHTML);
}, "json");
答案 1 :(得分:2)
您可以返回一个Json对象(可能使用getJSON),其中包含要检索的两个不同变量,一个是要追加的html,另一个是总订单值。
答案 2 :(得分:2)
为什么不废弃会话变量的想法 - 在php页面中对服务器上的总订单价值进行计算,然后将该值与您要添加到列表中的项一起发回?
答案 3 :(得分:0)
我在这里找到了一个脚本:Javascript Session Variables可以满足我的需求,并且可以帮助任何想要使用AJAX会话变量的人。