我建议您稍微重新访问您的代码,因为发布数据但只是通过 QueryString 发送信息(URL 中的 ? 之后的所有内容)有点忽略了这一点。
您应该在对象中发送关键字,如下所示:
var result = $("select#model option:selected").html();
$.post("advanced_search.php", { keywords: result }, function(data){
// success callback code goes here
});
如果您的 PHP 查找 $_POST['keywords'],当 $post 由 jQuery 执行时,您应该在其中找到您的数据。
通过 QueryString 发送它是不可撤销的,但在这种情况下,你真的应该按照以下方式做一些事情:
var result = $("select#model option:selected").html();
$.get("advanced_search.php",
{ keywords: result },
function(data){
// success callback code goes here
});
但是,您应该习惯于正确地发布数据,因为通过查询字符串发送数据既不安全,而且由于编码和 URL 长度限制而容易出现问题。
此外,这引出了一个问题:为什么要从标签内编码 HTML?你为什么不简单地在你的 中放一个简单的键,像这样:
<select id="model">
<option value="key1">2001-2004 Honda Civic TypeR</option>
<option value="key2">2005-2008 Honda Civic TypeR</option>
<option value="key3">2009-2012 Honda Civic TypeR</option>
<option value="key4">2013-2015 Honda Civic TypeR</option>
</select>
var result = $("select#model option:selected").val();
$.post("advanced_search.php", { keywords: result }, function(data){
// success callback code goes here
});
运行查询也应该更简单,考虑到您可以缩短值并且不需要对编码/解码值进行任何处理,除非您没有每个选择选项的键,在这种情况下,我想我理解你正在采取的方法。