在jQuery中使用GET和POST

Using GET and POST in jQuery

本文关键字:GET POST jQuery      更新时间:2023-09-26

我在通过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终端没有显示任何明显的错误。

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

首先,如果您为每个表使用不同的表单,为什么不将正确的表名('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);打印出get-en-post变量,然后解释"似乎中断"的含义(发生了什么,你看到了什么(错误消息等))。

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