使用jquery ajax load()来传输多个数据字段

时间:2014-09-29 07:36:54

标签: javascript jquery ajax

我有一个HTML表单,我试图转换为使用Jquery load()函数提交。我让它适用于单个字段,但我花了好几个小时试图让它适用于多个字段,包括一些复选框。

我看了很多例子,似乎有四种方法中的三种:     Jquery .load()     jquery .ajax()     jquery .submit()

和其他一些人。我不确定每种方法的优点是什么,但我跟随的第一个例子使用了.load(),所以这就是我坚持的。总体目标是提交一些搜索条件并返回数据库搜索结果。

目前我所拥有的:

<code>
// react to click on Search Button
$("#SearchButt").click(function(e){

var Options = '\"'+$("#SearchText").val()+'\"' ;

var TitleChk =  $("#TitleChk").prop('checked');
if (TitleChk) Options += ', \"TitleChk\": \"1\"'; 

// load returned data into results element
$("#results").load("search.php", {'SearchText': Options});

 return false; //prevent going to href link
});
</code>

我得到的是第一个附加到第一个参数的参数。

有没有办法让每个参数作为单独的POST项发送,还是我必须在PHP端将它拉开?

1 个答案:

答案 0 :(得分:0)

看起来好像你在包装器上磕磕绊绊,让我们继续使用原始的$.ajax(),这将变得更加清晰。

$("#SearchButt").click(function(e){
    var Options = {};
        Options.text = $('#SearchText').val();
        Options.title = $('#Titlechk').prop('checked')) ? 1: 0; //ternary with a default of 0

    $.ajax({
        url: 'search.php',
        type: 'POST',
        data: Options
    }).done(function(data){
        $('#results').html(data); //inject the result container with the server response HTML.
    });
    return false;
});

现在在服务器端,我们知道$_POST已填充了2个键值对,分别为texttitle