php - 使用 AJAX 运行 PHP 代码

标签 php javascript ajax jquery

我已经编写了一些 JavaScript 代码,这些代码将从 Google Maps API 读取并获取 JSON 对象列表。然后它将每个 JSON 对象转换为 XML 对象。同事需要将此列表转换为 XML,然后附加到现有的 XML 文件,然后将其保存到我们的服务器。所以我写了一些 PHP 代码来做到这一点。

这是我第一次使用 PHP,但我设法足够轻松地编写了 PHP 代码。接下来我要做的是编写一些 javascript 来运行 PHP 文件,并将 XML 对象发送到 PHP,它可以在其中附加和保存 XML。我想我会使用 jQuery 的 $.ajax功能。我开始使用一个简单的例子,试图将一个字符串回显到一些 <pre> 中。标签。所以这是我的代码:

Javascript(位于 index.php 中)

<script>
    var scriptString = 'THIS IS MY STRING';
    $('#clickMe').click(function(){
        $.ajax(
        {
            method:'get',
        url:'index.php',
        data:
        {
            'myString': scriptString
        }
        });
    });
    </script>

PHP 和 HTML(也位于 index.php 中)

<button type="button" id="clickMe">CLICK ME TO RUN PHP</button>
<pre>
    <?php
        echo $_GET['myString'];
    ?>
</pre>

最佳答案

  • 不包括 =在你的数据变量名称中(只说 'myString': scriptString )

  • 始终包含 $.ajax 的表单提交方法( method: 'get' )

  • 在 PHP 代码中,而不是 $myString , 使用 $_GET['myString']

  • 考虑使用 <button>而不是 <div>将数据发送到服务器 - 这是更标准的做法。

但最重要的是:

  • 您实际上并没有对返回的数据做任何事情!您还需要一个 success $.ajax 中的函数对来自服务器的数据执行某些操作的选项。

试试这段代码:

(JavaScript)

var scriptString = 'THIS IS MY STRING';
$('#clickMe').click(function(){
    $.ajax({
      method: 'get',
      url: 'index.php',
      data: {
        'myString': scriptString,
        'ajax': true
      },
      success: function(data) {
        $('#data').text(data);
      }
    });
});

(PHP 和 HTML)

<?php
if ($_GET['ajax']) {
  echo $_GET['myString'];
} else {
?>
<button type="button" id="clickMe">CLICK ME TO RUN PHP</button>
<pre id="data"></pre>
<?php } ?>

请注意,PHP 代码现在将根据它是否正在处理 AJAX 请求来执行不同的操作。对于 AJAX 请求,您不想返回页面的 HTML - 只是您感兴趣的数据。因此,最好有两个页面:一个 index.php页和一个 ajax.php处理 AJAX 请求的页面。

此外,在这个简单的示例中,您可以只使用纯 HTML 表单,不需要任何 JavaScript 或 AJAX。

关于php - 使用 AJAX 运行 PHP 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12075143/

相关文章:

php - CodeIgniter 增删改查结构

php - MySQL 查询获取 Spacetree (jit) 的数据

javascript - 如何在用户释放范围 slider 时触发 "change"事件,即使值未更改

javascript - 如何在 meteor 中设置默认 session 和下拉值?

asp.net - Ajax 在 ASP.NET 3.5 中启用网格排序和分页

php - ajax 调用后的 Google 图表 api

javascript - 使用 PHP 和 AJAX 更新选择下拉选项

php - json_encode 不工作 uft8 内容 php

javascript - in 运算符总是返回 false

javascript - JS获取Bootstrap下拉菜单的值