2

我正在尝试学习一点 AJAX,但在从 php 脚本中获取输出方面遇到了困难。

这是我目前正在使用的代码:

<form>
        <input type="text" id="url" name="url" value="" onkeydown="if (event.keyCode == 13 || event.which == 13) {go($('#url').val());} "/><input type="submit" id="submit" name="submit" value="SHORTEN" onclick="go($('#url').val());"/>
        </form>

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js" type="text/javascript"></script>
    <script src="js/jquery.js" type="text/javascript"></script>

    <script type="text/javascript">
        function go(url){
            $.post('url.php', {url: url}, 
            function(data){
                $("#result").html(data).stop();
            });
            alert(url);
        };
    </script>

目前 url.php 脚本只是为了测试目的而回显随机文本。

当我运行只有警报的 go() 函数时,它可以工作,但是 $.post() 函数似乎有问题,因为它没有从 url.php 获取回显字符串,并且输入时没有打开警报框或单击提交按钮。

谢谢

附言

下面是当您在文本字段中放置内容并提交下面的区域时我尝试执行的操作的示例,该区域未填充输出表单 url.php - chrissepham.co.uk

编辑 - 我正在使用谷歌浏览器

4

3 回答 3

2

您有一个 JavaScript 错误(特别是url: url- 您可能是指{url: url}“url=url”)。您应该保持控制台打开,以便在调试时看到错误。

此类错误也往往会停止脚本的执行,这可以解释为什么您没有看到警报。

于 2012-10-09T13:48:37.743 回答
1

如果您的唯一目标是使用结果填充元素,请使用以下.load()方法:

$("#result").load("url.php", { "url": url } );

文档中所述:

如果数据作为对象提供,则使用 POST 方法;

.post()因此,它将具有与在原始代码中使用完全相同的效果。

于 2012-10-09T13:52:40.450 回答
0

我在 AJAX 和 Web2.0 应用程序中使用 jQuery 和 PHP。在我看来,您的 PHP 中很可能存在语法错误。如果您有语法错误,它将终止服务器端脚本,您将不会收到任何回复。尝试从您的 php 脚本中删除除“hello world”之类的 echo 语句之外的所有内容,然后使用 firebug 的控制台查看来自您的 POST 的回复。如果您还没有,我建议您阅读 XML。一旦你开始使用带有 AJAX 的 POST,就很难切换到标准化的数据通信形式,例如 XML(一旦你使用 PHP 进入 OOP,这使得数据解析变得非常容易)

于 2012-10-09T13:59:28.560 回答