我有一个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端将它拉开?
答案 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个键值对,分别为text
和title
。