在jQuery Ajax函数中传递字符串不工作,但对于整数没有问题


Passing a string in a jQuery Ajax function not working, but no problems for an integer

我有一个简单的问题。我是jQuery的新手,我研究了关于这个问题的stackoverflow文件,以寻找没有成功的答案。下面的函数接受一个参数'search_term',在成功页面上做一些事情,然后重新加载一个文件,其中$_POST['id']意味着返回search_term的值。如果search_term是整数......,则此操作非常有效但在我的网站上,它将永远是一个字符串。如果我设置$search_term = "hi",控制台的错误是:

ReferenceError: hi is not defined

我已经尝试在两个数据参数周围引号。显然,这是我的语法问题,如果这是一个字符串(我假设)。任何建议都会很有帮助。我尝试了jQuery文档,但似乎没有一个例子与我的完全一样,所以运气不好。记住,我是新手。

function most_recent_search(search_term){
    $.ajax({
    url: '../ajax/success_page.php',
    type: 'post',
    data: {
          'search_term':search_term,
          },
    success: function(html) {
                   $('.thread_holder').load('search_thread_holder.php', {id: search_term});
              }
    });
    return false;
}
HTML:

<ul>        
    <li>
        <a href="#tabs-2" onclick="most_recent_search(<?php echo $search_term;?>)">Most recent</a>
    </li>
</ul>

可能你漏掉了引号:

<li><a href="#tabs-2" onclick="most_recent_search('<?php echo $search_term;?>');">Most recent</a></li>

否则它会像这样调用:

most_recent_search(hi);

所以hi是undefined

查看生成的html源代码,您将看到如下内容:

<a href="#tabs-2" onclick="most_recent_search(hi)">Most recent</a>

你真正想要的是:

<a href="#tabs-2" onclick="most_recent_search('hi')">Most recent</a>

所以你缺少一组括括echo语句的引号

<a href="#tabs-2" onclick="most_recent_search('<?php echo $search_term;?>')">Most recent</a>