如何使用jQuery/Ajax和PHP检索HTML和变量

如何使用jQuery/Ajax和PHP检索HTML和变量,php,jquery,ajax,session-variables,Php,Jquery,Ajax,Session Variables,我有一个HTML表单,它使用下拉列表中的选择来填充mySQL表,但是jQuery/AJAX调用外部php文件来更新原始表单下方输入行的显示 表单的用途是一个订单输入系统,因此工作原理是:选择一个项目,查看是否将其添加到列表中。我遇到的问题是,除了显示输入的项目外,我还希望显示总订单值。我原以为可以使用PHP会话变量,但除非刷新原始页面,否则这似乎不起作用 因此,我的问题是:有没有办法从外部php文件以及附加到显示页面的HTML中获取会话变量或任何其他类型的变量 如果有帮助,这是我在添加新行时用来

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

您可以返回一个Json对象,该对象可能包含两个不同的要检索的变量,一个是要追加的html,另一个是总订单值。

您可以将许多值以数组的形式传递回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>";
));

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

我在这里找到了一个脚本:它满足了我的要求,可能会帮助任何希望在AJAX中使用会话变量的人。

我可以做到这一点;当我返回一个HTML表格行时,我可以将它包含在该行末尾的表格单元格中。问题是,当我只想在页面上某个地方显示一个总计,并随着新行的添加而更新时,我在每行旁边都有一个运行总计。我已经在服务器上进行计算了;我只是不知道如何以我可以使用的方式将结果返回到原始页面。您在示例document中混合了您的语法。getElementById'qty'可以/应该是'qty',谢谢提示;我总是这样写的。但是,在Google上快速查看getElementById,在使用的第一页上没有任何结果。
$.post("page.php", {}, function(results) {
  alert(results.username + " has " + results.msgCount + " messages.");
  $("messages").append(results.userHTML);
}, "json");