jQuery没有调用php

时间:2011-05-04 06:58:29

标签: php ajax jquery

出于某种原因,jQuery没有加载我的php文件。单击该按钮,页面只刷新。我已经验证了jQuery正在运行,点击功能也正常运行。一旦到达$.post,它似乎不会调用该文件并进行暂停并回显结果。该目录对于php文件是正确的。我很茫然。有什么想法吗?

// HTML Code    
<input id="doit" class="medium blue button" type="submit" name="doit" value="Sign in">

//jQuery code:
$('#doit').click(function(){
    $('#fullscreen').show();
    $.post('./delete-misc/test-ajax-code.php', function(data){
         $('#fullscreen').hide();
         alert(data);
    })
});

// Php code (test-ajax-code.php)
<?php
    sleep(10);
    echo "Done";
?>

6 个答案:

答案 0 :(得分:3)

尝试从网址的开头删除点。

$.post('/delete-misc/test-ajax-code.php', ...

由于缺乏经验,我无法详细解释URL路径中的点如何正常工作,但我会将其设为社区维基,以便让其他人解释。

编辑:我问了一个关于这个主题的问题,答案很棒:What does a dot mean in a URL?

答案 1 :(得分:2)

更改按钮类型。
所以,而不是:

<input id="doit" ... type="submit" ... />

你应该有这个:

<input id="doit" ... type="button" ... />

为什么呢?导致提交按钮将触发表单提交,该表单将转到另一个页面。但是一个按钮什么都不做,只有你编程的东西(用js)才能做到。

另一个解决方案是防止javascript中按钮点击的默认行为,所以你应该:

$('#doit').click(function(){
    $('#fullscreen').show();
    $.post('./delete-misc/test-ajax-code.php', function(data){
         $('#fullscreen').hide();
         alert(data);
    });
    return false; //This does the trick!!!
});

为什么呢?在jquery事件中返回false'取消'默认行为,因此表单不会被提交

希望这会有所帮助。干杯

答案 2 :(得分:1)

尝试更改为按钮类型:

<input id="doit" class="medium blue button" type="button" name="doit" value="Sign in">

答案 3 :(得分:1)

您需要在提交处理程序中返回false。如果不这样,表单将在处理程序返回后正常提交。

答案 4 :(得分:0)

您忘记了;之后结束$.post;)。

试试这个,它个人工作:

            $('#doit').click(function(){
                $.post('./delete-misc/test-ajax-code.php', function(data){
                     alert(data);
                });
            });

答案 5 :(得分:0)

删除提交按钮的name属性并尝试。一段时间我有一个类似的问题,删除名称属性是诀窍。 (当我通过jQuery提交发布的数据时,我不需要name属性。)

我仍然想知道它为什么会起作用?