Ajax Call Confusion

时间:2013-12-31 13:53:49

标签: javascript php jquery ajax html5

在我们开始道歉并且缺乏理解之前 - 我对此完全陌生。

我希望使用Ajax运行php脚本 - 我不需要将任何数据发送到php脚本,我只需要按下按钮运行,脚本运行后我需要刷新页面的正文。到目前为止我所拥有的: 单击HMTL按钮:

<a href="#" class="button" onclick = "AjaxCall()"><font color = "white">Next Question</font></a>

JS Ajax调用:

function AjaxCall() {
    $.ajax({
        url:'increment.php',
        type: 'php',
        success:function(content,code)
        {
            alert(code);
            $('body').html(content);
        }
    });        
}

这会运行php脚本,但不会保留在当前页面上或刷新身体 - 有任何人有任何想法 - 如果这是完全错误的话我会道歉 - 我慢慢学习 -

非常感谢提前。

**作为一个小编辑 - 我不希望用户在此过程中离开页面

5 个答案:

答案 0 :(得分:2)

如何使用load代替典型的ajax函数?

function AjaxCall() {
    $(body).load('increment.php');
}

此外,如果您使用ajax函数,php不是有效类型。 type选项指定您是使用GET还是POST发布请求。

dataType选项(我认为你的意思)而言,Ajax并不关心被调用进程使用的技术(如ASP或PHP),它只关心格式返回的数据,因此适当的类型是htmljson等......

阅读更多:http://api.jquery.com/jquery.ajax/

此外,如果您要更换整个身体内容,为什么不刷新页面?

答案 1 :(得分:0)

试试这个;

<script type="text/javascript">
    function AjaxCall() {
        window.location.reload();
    }
</script>
<body>
  <a href="#" class="button" onclick = "AjaxCall()"><font color = "white">Next Question</font></a>
</body>

答案 2 :(得分:0)

你可以在这里学习js和ajax http://www.w3schools.com/ajax/default.asp会有很多帮助。当然,如果从内部js脚本调用所有js函数应该在<script></script>内部,并且如果从外部调用,则调用js gile,如<script src"somejs.js"></script>,在js内部,不再需要<script>标记。现在所有这些功能都不能简单地声明它们。所以这个:

function sayHello(){
    alert("Happy coding");
}

不起作用,因为它只是声明而没有被调用。所以在我们使用上面的sayHello声明一些函数之后使用的jQuery:

jQuery(document).ready(function($){
    sayHello();
});

这样做我们说当一切都完全加载所以我们的DOM有它的最终形状然后让游戏开始,做一些DOM操作等

上面您也没有指定调用的类型,即POSTGET。这些动词是http请求的alpha和omega。通常,我们使用GET来提供类似于您的案例和POST的数据,以便将一些数据发送到服务器。一个非常常见的GET请求是:

    $.ajax({
        type     : 'GET',
        url      : someURL,
        data     : mydata, //optional if you want to send sth to the server like a user's id and get only that specific user's info
        success  : function(data) { 
            console.log("Ajax rocks");
        },
        error: function(){
            console.log("Ajax failed");
        }
    }); 

答案 3 :(得分:0)

如果您要以这种方式触发javascript事件,有两种方法可以解决这个问题并使其不会实际尝试关注该链接:

<a href="#" class="button" onclick = "AjaxCall(); return false;"><font color = "white">Next Question</font></a>

请注意return false;。这将停止以下链接。另一种方法是:

<a href="javascript:AjaxCall();" class="button"><font color = "white">Next Question</font></a>

请注意这实际上是如何将href修改为javascript调用。

答案 4 :(得分:0)

你的ajax应该是

function AjaxCall() {
    $.ajax({
        url:'increment.php',
        type: 'post',
        success:function(data)
        {
            console.log(data);
            $('body').html(data);
        }
    });        
}

如果你想学习ajax,那么你应该参考this link

如果您只想加载该页面,则可以使用 .load() 方法作为“Dutchie432”进行描述。