在jQuery中使用GET和POST

时间:2012-08-22 11:05:17

标签: php javascript jquery ajax

我在通过AJAX发布数据时遇到了一些麻烦。我创建了一个小的保存脚本,用于确定POST必须保存在哪个表中(我为每个表使用不同的表单):

$(function() 
{
    $( "#tabs" ).tabs().find( ".ui-tabs-nav" ).sortable({ axis: "x" });
});

function save(target)
{
    switch(target)
    {
        case "praktijk":
            $.ajax({                                                                                                           url: 'webscripts/admin/opslaan.php?type=praktijk',
                type: 'POST',
                data: $("#tabs-2").find('form').serialize(),
                success: function(){
                    alert("gegevens opgeslagen!");
                    $('#popup').dialog('close');
                }
            });
            break;
        case "persoonlijk":
            $.ajax({                                                                                   
                url: 'webscripts/admin/opslaan.php?type=persoonlijk',
                type: 'POST',
                data: $("#tabs-1").find('form').serialize(),
                success: function(){
                    alert("gegevens opgeslagen!");
                    $('#popup').dialog('close');
            }
        });
        break;
    case "vragen":
        $.ajax({
            url: 'webscripts/admin/opslaan.php?type=vragen',
            type: 'POST',
            data: $('#tabs-3').find('form').serialize(),
            success: function(){
                    alert("gegevens opgeslagen!");
                    $('#popup').dialog('close');
            }
        });
        break;
}

}

正如您所看到的,我接下来通过使用GET变量来确定PHP脚本,该变量说明了将其保存到哪个表中。但这不起作用。此时脚本似乎崩溃了。我不知道它到底崩溃了什么.. Firebug终端没有显示任何明显的错误。

有人知道它为什么不起作用吗?

2 个答案:

答案 0 :(得分:1)

首先,如果您为每个表使用不同的表单,为什么不使用表单本身发送正确的表名('persoonlijk','vragen'等)?

示例:

<form ...>
<input type="hidden" name="target" value="persoonlijk" />
...
</form>

在php中:

<?php
if($_POST['target'] == 'persoonlijk') {
    // save in table 'persoonlijk'
} else {
   // save it somewhere else
}
?>

此外,读取php var不能破坏你的javascript,只是因为你在服务器上工作,而javascript在浏览器中工作。请使用print_r($_GET);打印出来的邮件变量,然后解释“似乎中断”意味着什么(会发生什么,你看到了什么(错误信息等))。

答案 1 :(得分:1)

data:应该包含一些数据。它应该是文本或值,并且您的代码似乎没有正确设置它。我建议你在那里使用一些var