2

我有一个 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”是发送到脚本并在成功插入后归零的两个表单变量。

4

4 回答 4

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");
于 2009-12-14T14:24:25.990 回答
2

您可以返回一个 Json 对象(可能使用getJSON),其中包含您要检索的两个不同变量,一个是要附加的 html,另一个是总订单值。

于 2009-12-14T14:23:28.380 回答
2

为什么不直接放弃会话变量的想法——在 php 页面中的服务器上进行总订单价值计算,然后将值连同您要添加到列表中的项目一起发回?

于 2009-12-14T14:25:21.743 回答
0

我在这里找到了一个脚本:Javascript Session Variables,它可以满足我的需求,并且可以帮助任何希望将会话变量与 AJAX 一起使用的人。

于 2009-12-14T15:25:50.460 回答