执行更新查询,然后在Jquery Mobile中更改页面

时间:2013-02-27 14:04:30

标签: php jquery-mobile

我有一个确认对话框,当用户点击链接时会导致更新查询。

<div class="ui-bar">
    <a id="confirm" href="#" data-strid="<?php echo $str_info['str_id'] ?>">Confirm</a>
</div>

我要做的是运行更新查询,然后重新加载包含更新信息的上一页。

我以为我完成了这个,但是某种错误不断出现在萤火虫中,而ajax似乎并没有成功。只有当我重新加载页面时才会出现错误...当我对它进行延迟时,没有错误,所以我甚至无法读取它是什么。

<script>
        $('#confirm').click(function (){
        var str_id = $("#confirm").data("strid");
        $.ajax({
            type: "POST",
            async: true,
            url: '../../ajax/add_land',
            dataType: 'json', 
            data: { str_id: str_id },
            success: function(){

            }
        });
        $('.ui-dialog').dialog('close')
        setTimeout(
            function() 
            {
                location.reload()
            }, 750);
        return false;
    });
</script>

有没有什么好方法可以实现这个目标?再次,总之,我希望执行更新查询,然后重新加载最后查看的页面(而不是对话框),以便显示更改的信息。 ../../ajax/add_land在PHP中。

1 个答案:

答案 0 :(得分:1)

有几种更好的方法可以实现这一目标,但这超出了我们应该这样做的范围:

<script>
        $('#confirm').click(function (){
        var str_id = $("#confirm").data("strid");
        $.ajax({
            type: "POST",
            async: true,
            url: '../../ajax/add_land',
            dataType: 'json', 
            data: { str_id: str_id },
            success: function(){
              $('.ui-dialog').dialog('close');            
              location.reload();
            }
        });
        return false;
    });
</script>

成功执行ajax调用后,它将在成功回调中调用代码。 Ajax调用是异步操作,这意味着其余的代码不会等待它完成。由于这个成功,使用了回调。所以需要暂停。

还有一件事,还有一个错误回调,用它来调试ajax问题:

error: function (request,error) {
    alert('Network error has occurred please try again!');
},