jQuery not calling the php



由于某种原因,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";
?>

尝试删除URL开头的点。

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

由于缺乏经验,我无法详细解释URL路径中的点是如何工作的,但我会把它做成一个社区wiki,以便让有人解释它。

EDIT:我问了一个关于这个话题的问题,答案很好:在URL中点是什么意思?

更改按钮类型。
所以,不用这个:

<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 '取消'默认行为,所以表单不会被提交

希望这对你有帮助。欢呼声

尝试更改为type button:

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

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

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

试试这个,它个人工作:

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

删除提交按钮的name属性并尝试。我以前也遇到过类似的问题,删除name属性是一种技巧。(因为我是通过jQuery提交发布的数据,所以我不需要name属性)。

我仍然想知道为什么它在当时有效?

相关内容

最新更新