使用AJAX运行PHP代码

时间:2012-08-22 14:16:39

标签: 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&amp; HTML(也在index.php中)

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

1 个答案:

答案 0 :(得分:7)

  • 请勿在数据变量名称中加入=(只需说'myString': scriptString

  • 始终包含$.ajaxmethod: '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页面和一个{ {1}}处理AJAX请求的页面。

此外,在这个简单的例子中,您可能只使用了一个纯HTML格式,不需要任何JavaScript或AJAX。