Jquery post函数没有返回输出?

时间:2012-10-09 13:47:08

标签: php jquery ajax post

我正在尝试学习一些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而没有警告框输入或单击提交按钮时打开。

由于

P.S

下面是一个例子,当你在文本字段中放置一些东西并且提交下面的区域时,我试图做的是没有填充输出形式url.php - chrismepham.co.uk

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

3 个答案:

答案 0 :(得分:2)

您有JavaScript错误(具体为url: url - 您可能意味着{url: url}或'url = url')。您应该保持控制台处于打开状态,以便在调试时看到错误。

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

答案 1 :(得分:1)

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

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

正如documentation所述:

  

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

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

答案 2 :(得分:0)

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