2015-03-03 3 views
0

Это моя функция javascript .... Но мой php-контроллер получает все значения, но не массив не уверен, почему? Нужна помощь ..... Заранее спасибо :)Передача массива и другие данные через ajax

function submitForm(){ 
    var id = $('#id').val(); 
    var supplier_id = $('#supplier_id').val(); 
    var description = $('#description').val(); 
    var numofpro = $('#numofpro').val(); 

    var product_id = new Array(); 
    for(var i=0;i<numofpro;i++){ 
     product_id[i] = $('#product_id'+(i+1)).val();    
    } 
    var payment_mode = $('#payment_mode').val(); 
    //description = description.replace(new RegExp('\r?\n','g'), '<br />');  
    $.ajax({ 
      url: "<?= base_url(); ?>edit/save_purchase", //The url where the server req would we made. 
      data: "id="+id+"&supplier_id="+supplier_id+"&description="+description+"&product_id="+product_id+"&payment_mode="+payment_mode, 
      dataType: "html", //Return data type (what we expect). 
      beforeSend:function(){ 
       //alert("asds"); 
      }, 
      success: function(data) { 
       //alert("Edited"); 
       alert(data); 

      } 
     }); 
} 
+1

Попробуйте 'данные: {: ID, supplier_id: supplier_id, описание: описание, product_id: product_id, payment_mode: payment_mode}' вместо вашей длинной строки. Вот как это должно быть установлено. – blex

+0

он решил мою проблему ... thnx :) – coder

ответ

0

, потому что вы передаете строку, а не массив :) попробовать:

$.ajax({ 
     url: "<?= base_url(); ?>edit/save_purchase", 
     type: "POST" 
     data: {id : id, supplier_id : supplier_id, description : description, product_id : product_id, payment_mode : payment_mode}, 
     dataType: "json", 
     beforeSend:function(){ 
      //alert("asds"); 
     }, 
     success: function(data) { 
     //alert("Edited"); 
      alert(data); 
     } 
     }); 

в вас PHP использование:

$arr = json_decode($_POST); 
//some php code 
//some $result; 
// if $result arr then 
echo json_encode($result); 
// else 
echo json_encode(array('data' => $result)) 

надеюсь, что это поможет ...

+0

да ... я решил это таким образом ... thnx – coder

0

Вы должны сначала превратить этот массив в строку в JS. Перед отправкой, сделайте следующее:

JSON.stringify(product_id); 

После получения его на PHP вам необходимо его декодировать.

$decoded = json_decode($_POST['product_id'])