Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/440.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过ajax从javascript接收的数据创建查询_Javascript_Php_Jquery_Ajax_Codeigniter - Fatal编程技术网

通过ajax从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

我有以下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);
}
我对我可以使用的符号有点限制,因为我使用的是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']);