Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/428.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript ajax变量问题_Javascript_Jquery_Ajax - Fatal编程技术网

javascript ajax变量问题

javascript ajax变量问题,javascript,jquery,ajax,Javascript,Jquery,Ajax,嘿,阿贾克斯新手,JS。。我正试图添加到一个Javascript/Ajax搜索脚本中。以前,它只有一个搜索字段,名为search\u word,我添加了一个名为search\u date的字段 $(".search_button").click(function() { var search_word = $("#search_box").val(); var search_date = $("#datepicker").val(); var dataString = '

嘿,阿贾克斯新手,JS。。我正试图添加到一个Javascript/Ajax搜索脚本中。以前,它只有一个搜索字段,名为search\u word,我添加了一个名为search\u 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的数据传递给我的处理脚本。如何将搜索日期添加到数据字符串,以便在searchdata.php中使用该变量

在searchdata中,我可以这样做$search\u word=$\u GET['search\u word'];并使用该变量,但到目前为止,每次我尝试更改dataString时,它都会破坏所有其他功能


谢谢

您需要这样修改
dataString

var dataString = 'search_word='+ search_word + '&search_date=' + search_date;
我还建议您将if条件反转为
if(search\u word){…}
,将AJAX放在那里,然后跳过
else


如果这对您没有帮助,请尝试在连接之后提醒
dataString
的值,以查看实际发生的情况。也许
search\u date
的值不是您认为的值?

您需要修改
dataString
如下:

var dataString = 'search_word='+ search_word + '&search_date=' + search_date;
我还建议您将if条件反转为
if(search\u word){…}
,将AJAX放在那里,然后跳过
else

如果这对您没有帮助,请尝试在连接之后提醒
dataString
的值,以查看实际发生的情况。也许
搜索日期的值与您想象的不一样?

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}
      });
或者

或者你可以完全摆脱这条线,然后就这样做

$.ajax({
        type: "GET",
        url: "searchdata.php",
        data: {search_word: search_word, search_date: search_date}
      });
为了避免对服务器的意外请求,您应该调用任何用户输入的参数,这些参数将作为URI的一部分传递。 为了避免对服务器的意外请求,您应该调用任何用户输入的参数,这些参数将作为URI的一部分传递。
您也可以直接将其添加到url:

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

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

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

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

$.ajax({ type: "GET", url: "searchdata.php", data: {search_word: search_word, search_date: search_date} }); $.ajax({ 键入:“获取”, url:“searchdata.php”, 数据:{搜索词:搜索词,搜索日期:搜索日期} });
在$.ajax调用中,可以使用对象作为数据参数

$.ajax({ type: "GET", url: "searchdata.php", data: {search_word: search_word, search_date: search_date} }); $.ajax({ 键入:“获取”, url:“searchdata.php”, 数据:{搜索词:搜索词,搜索日期:搜索日期} });
使用参数将数据设置为json对象:

data {
  prop1: val1
  , prop2: val2
}

使用参数将数据设置为json对象:

data {
  prop1: val1
  , prop2: val2
}

第二个选项我试过了,但是没有贴出来。第一个选项很有魅力,谢谢!此外,如果您更习惯于在“GET”中工作,您可以发送字符串“foo=bar&foo2=bar2”等。我尝试了第二个选项,但它没有发布。第一个选项很有魅力,谢谢!此外,如果您更习惯于在“GET”中工作,则可以发送字符串“foo=bar&foo2=bar2”等。您必须对两个参数分别使用
encodeURI
或最好是
encodeURIComponent
,而不是对最终连接的字符串。当前解决方案将用
%26
替换
&search\u date=
中的
,等号将替换为
%3D
。(粗体文本的有效部分位于用户输入的任何参数上,而不是整个最终查询字符串上;这根本不起作用)您必须对两个参数分别使用
encodeURI
或者最好是
encodeURIComponent
,而不是对最终连接的字符串。当前解决方案将用
%26
替换
&search\u date=
中的
,等号将替换为
%3D
。(粗体文本的有效部分在任何用户输入的参数上,而不是在整个最终查询字符串上;这根本不起作用)