8

我编写了一些 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>
4

1 回答 1

11
  • 不要包含=在您的数据变量名称中(只是说'myString': scriptString

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

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

  • 考虑使用 a<button>而不是 a<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。

于 2012-08-22T14:19:30.987 回答