通过ajax从javascript接收的数据创建查询

时间:2014-02-10 10:35:11

标签: 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.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?

我正在尝试爆炸或替换的东西,但到目前为止没有成功。任何帮助都将深表感谢。

问候,约翰

2 个答案:

答案 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']);