javascript ajax变量问题

时间:2010-03-17 15:09:01

标签: javascript jquery ajax

嘿那里,AJAX的新手,JS ..我试图添加到我放在一起的Javascript / Ajax搜索脚本。以前,它有一个名为search_word的搜索字段,我添加了一个名为search_date。

$(".search_button").click(function() {
    var search_word = $("#search_box").val();
    var search_date = $("#datepicker").val();
    var dataString = 'search_word='+ search_word;

    if(search_word=='')
    {
    }
    else
    {
        $.ajax({
        type: "GET",
        url: "searchdata.php",
        data: dataString,

在Ajax中,它似乎将dataString的数据传递给我的处理脚本。如何将搜索日期添加到dataString,以便我可以在searchdata.php中使用该变量?

在searchdata中,我可以这样做$ search_word = $ _ GET ['search_word'];并使用该var,但到目前为止,每当我尝试更改dataString时,它都会破坏所有其他功能。

谢谢!

6 个答案:

答案 0 :(得分:4)

无论

var dataString = 'search_word='+search_word+'&search_date='+search_date;

或者你可以完全摆脱那条线而只是做

$.ajax({
        type: "GET",
        url: "searchdata.php",
        data: {search_word: search_word, search_date: search_date}
      });

答案 1 :(得分:1)

您需要像这样修改dataString

var dataString = 'search_word='+ search_word + '&search_date=' + search_date;

我还建议您将if条件转换为if(search_word) { ... },将AJAX放入其中,然后跳过else

如果这对您没有帮助,请尝试在该连接后提醒dataString的值,以查看实际发生的情况。也许search_date的价值不是你想象的那样?

答案 2 :(得分:1)

var str = 'search_word='+ search_word + '&search_date'+search_date;
dataString = encodeURI(str);

$.ajax({
    type: "GET",
    url: "searchdata.php",
    data: dataString});
  
    

为了避免对服务器的意外请求,您应该对任何用户输入的参数调用encodeURI,这些参数将作为URI的一部分传递。

  

答案 3 :(得分:0)

您也可以直接将其添加到网址:

 $.ajax({
        type: "GET",
        url: "searchdata.php?search_word=" + search_word;
 });

答案 4 :(得分:0)

在$ .ajax调用中,您可以使用对象作为数据参数。

$.ajax({
        type: "GET",
        url: "searchdata.php",
        data: {search_word: search_word, search_date: search_date}
});

答案 5 :(得分:0)

使用您的参数将数据作为json对象:

data {
  prop1: val1
  , prop2: val2
}