【问题标题】:Assign Javascript variable to PHP with AJAX使用 AJAX 将 Javascript 变量分配给 PHP
【发布时间】:2011-07-04 22:51:43
【问题描述】:

我明白了……

  • PHP 作为服务器端和 Javascript 作为客户端之间的差异。
  • AJAX 可以修补此问题。
  • XMLHttpRequest 对象很重要。

但是,我仍然不知道如何在两种语言之间传递变量。

任何帮助将不胜感激!

编辑:感谢您到目前为止的回复,我应该澄清一下,我想在不加载新页面的情况下执行此操作。

【问题讨论】:

    标签: php ajax


    【解决方案1】:

    您需要发送一个 AJAX 请求,其中包含查询字符串或 POST 正文中的变量值。

    URL 另一端的 PHP 脚本可以从查询字符串或 POST 正文中读取值。

    【讨论】:

    • 感谢您的回复。这是什么类型的请求,是否需要外部 PHP 文件?
    • 它可以是 GET 或 POST。如果它不是幂等的,它应该是POST。它可以是您想要的任何 PHP 文件; PHP 文件将收到一个单独的请求。
    【解决方案2】:

    您可以将 JSON 与 JS 一起使用并使用 php 对其进行解码,但正如上面的帖子所述,它涉及 ajax。

    【讨论】:

    • 这听起来不错,因为我已经对页面上的其他数据进行了类似的操作。如何将我感兴趣的两个变量格式化为 JSON?在那之后我可能会让它工作。
    【解决方案3】:

    更新:教程位于link

    你应该给出一个更详细的例子来说明你想要完成的事情。但是,如果我理解正确,您想在 PHP 代码中使用 JavaScript 代码中的值吗?

    您应该尝试使用 POST 或 GET 参数将值传递给 PHP。为了使 PHP 能够执行任何操作,您必须加载一个新页面。

    假设您有 list.php 提供帖子列表。你想“喜欢”一个帖子。您的 JavaScript 在此页面上。当您点击“赞”时,会向like.php 发送一个 POST 参数 id=123 的 AJAX POST。

    在like.php 中,您从请求中获取值(使用$_POST['id'] 或更合适的方式),发挥您的作用(保存到数据库)并回显一些结果,例如json_encode(array('success' => true))

    调用like.php 的JavaScript 代码然后可以使用它的回调来检查“赞”是否成功并显示反馈。 like.php 可以是任何页面,如果您愿意,可以使用 list.php。为了清楚起见,我使用了like.php

    如果这根本不是您想要的,请提供更多信息。

    【讨论】:

    • 你说得对,我想在我的 PHP 中使用 Javascript 值。我的问题在于,即使在阅读了 AJAX POST 函数的文档之后,我也不了解所有参数,因此它不起作用。
    • 阅读 jQuery AJAX (link)。您的 javascript 代码将类似于:$.post("like.php", { id: 123}, function(data) { // check data if everything went well, append some feedback to DOM }); 而您的 like.php 类似于:<? $id = $_POST['id']; echo json_encode(array('success' => true)); ?> 有很多很好的教程,例如:link
    • 我正在尝试传递两个 JS 变量,lat 和 lng。到目前为止,我的代码看起来像这样,但是 PHP 会抛出一个变量未定义的错误:$.post("index.php", { lat: lat, lng: lng}, function(data) { // check data if everything went well, append some feedback to DOM });$lat = $_POST['lat']; echo json_encode(array('success' => true));
    【解决方案4】:

    如果你还没有看过 jQuery 框架的 javaScript,那就去看看吧。

    如果你在 JS 中有一个名为city 的变量,你可以通过使用将它传递给file.php

    var city = "London";
    $.get("file.php", {location:city} );
    

    这是一个 HTTP GET 请求。

    在 PHP(file.php) 中,然后通过使用来获取它

    $city = $_GET['location'];
    
    echo $city; //London
    

    【讨论】:

    • 这看起来很有希望,但会标记 PHP 错误:注意:未定义索引:位置有什么想法吗?
    • @Sebastian 很难说,这意味着变量没有被发送。首先确保函数运行,然后在函数中直接尝试like location = "London",确保设置了值。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-26
    • 1970-01-01
    • 1970-01-01
    • 2016-12-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多