2014-02-10 114 views
0

从JavaScript recived我有以下的javascript:从数据创建查询通过AJAX

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 

我有点其中符号restriced我可以使用,因为我使用codeigniter,如果我使用&例如我得到消息,我在我的网址中使用dissalowed字符。

我的问题是我该如何转换格式$ key ['fieldname'] = $ value ['fieldvalue']这样的数据,所以我可以建立我的地方clausule?

我正在尝试一些爆炸或替换,但迄今没有成功。任何帮助将深表谢意。

的问候,约翰

+0

你能不能序列化的形式?并在PHP反序列化? – TigerTiger

+0

我只需要非空的字段,而不是全部。形式相当大。另外,我实际上不是JavaScript大师。代码片段将非常感激。 – user2417624

回答

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 

所以,你可以获取这个序列化的数据作为 $数据= $ _POS T [ '连载'];

foreach($data as $key => $value) { 
    if($value == '') continue; //skip empty values as per your request 

    //else save in db etc ... 
} 
+0

我现在得到以下错误在PHP中:

严重性:注意

消息:未定义指数:连载

文件名:控制器/ search.php中

行号:167

user2417624

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']); 
相关问题