通过ajax从javascript接收的数据创建查询
我有以下javascript:通过ajax从javascript接收的数据创建查询,javascript,php,jquery,ajax,codeigniter,Javascript,Php,Jquery,Ajax,Codeigniter,我有以下javascript: function update_number_of_adds_found(field_dropdown, selected_value) { selected_value=""; for(i=0; i<document.submitadd.elements.length; i++){ if(document.submitadd.elements[i].value !='' && document.submita
function update_number_of_adds_found(field_dropdown, selected_value) {
selected_value="";
for(i=0; i<document.submitadd.elements.length; i++){
if(document.submitadd.elements[i].value !='' && document.submitadd.elements[i].value != 'Αναζήτηση' && document.submitadd.elements[i].checked !=''){
selected_value += (document.submitadd.elements[i].name +'-' + document.submitadd.elements[i].value +' ');
}
}
var result5 = $.ajax({
'url': '<?php echo site_url('search/findNumberOfAdds'); ?>/' + selected_value,
'async': false
}).responseText;
$('#totalNumOfAdds').empty();
$("#totalNumOfAdds").append(result5);
}
我对我可以使用的符号有点限制,因为我使用的是codeigniter,如果我使用了,例如,我得到的消息是我在我的url中使用了dissalowed字符
我的问题是如何将这些数据转换为$key['fieldname']=$value['fieldvalue']格式,以便构建where子句
我试着用explode或replace做些什么,但到目前为止还没有成功。任何帮助都将不胜感激
您好,John刚刚跟进了我上面的评论。。。你可以试试这样的。。。我还没有测试过,但应该给你一些想法,如何继续
jQuery('.submit').click(function(){
var str = $("#myForm").serialize();
str += '&serialize=' + encodeURIComponent(str);
str += '&action=myformsubmit';
jQuery.ajax('phpscripturl.php', {
method: 'POST',
data: str,
success: function(response) {
alert('Got this from the server: ' + response);
},
beforeSend: function(){
alert('Sending...');
}
});
return false;
});
通过使用jQuery的serialize序列化表单输入,可以创建如下字符串:
a=1&b=2&c=3&d=4&e=5&postID=10
因此,您可以将此序列化数据作为
$data=$_POST['serialize']
foreach($data as $key => $value) {
if($value == '') continue; //skip empty values as per your request
//else save in db etc ...
}
构建一个JSON对象,然后将其字符串化并发布到一个变量中。然后使用json_decode($_POST['key'])创建一个PHP对象,并可以轻松访问这些值 在JS中 在PHP中
$Object = decode_json($_POST['key']);
你不能序列化你的表单吗?在PHP中反序列化?我只需要不为空的字段,而不是所有字段。形式是相当大的。而且,实际上我不是javascript大师。非常感谢代码片段。我现在在php中遇到以下错误:严重性:注意消息:未定义索引:序列化文件名:controllers/search.php行号:167
var ValueToSend = new Object();
ValueToSend.field1 = value1;
var postString = JSON.stringify(ValueToSend)
$Object = decode_json($_POST['key']);