我有以下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.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);
}
此脚本按以下格式发送数据:
addtypeid-1%20isnew-1%20geographicareaid-3
我有点限制我可以使用哪些符号,因为我使用的是codeigniter,如果我使用&amp;例如,我得到的消息是我在我的网址中使用了不同的字符。
我的问题是如何以$ key ['fieldname'] = $ value ['fieldvalue']格式转换这些数据,这样我就可以构建我的where clausule?
我正在尝试爆炸或替换的东西,但到目前为止没有成功。任何帮助都将深表感谢。
问候,约翰
答案 0 :(得分:1)
刚刚跟进我上面的评论......你可以尝试这样的事情......我没有测试过,但应该给你如何去做的想法...
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的序列化序列化表单输入,您可以创建一个字符串,如:
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 ...
}
答案 1 :(得分:0)
构建一个JSON对象然后Stringify并将其发布在一个变量中。然后使用json_decode($ _ POST ['key'])创建一个PHP对象,并可以轻松访问这些值。
在JS中
var ValueToSend = new Object();
ValueToSend.field1 = value1;
var postString = JSON.stringify(ValueToSend)
在PHP中
$Object = decode_json($_POST['key']);