2015-07-17 5 views
0

Я создаю свой проект, используя ООП. Мне нужно передать все значения, вставленные в базу данных в виде массива. И это многомерный массив. SO, когда я передаю теперь через ajax как тип данных «text», он отображает массив в console.log(). Но я не уверен, что это правильный способ и как отобразить значение в форме таблицы в jquery.Как передать многомерный массив через ajax и отобразить его?

Ниже перечислены функции, в которых значения возвращаются объекту на другой странице.

public function selectType() 
    { 

     $sql="SELECT * FROM car_type"; 
     $stmt =connection::$pdo->prepare($sql); 
     $stmt->execute(); 
     $carType=array(); 

     while($row = $stmt->fetch()) 
     { 
      array_push($carType,$row['car_type']); 
     } 
     return $carType; 
    } 

    public function selectMaker() 
    { 

     $sql="SELECT * FROM car_maker"; 
     $stmt =connection::$pdo->prepare($sql); 
     $stmt->execute(); 
     $carMaker=array(); 

     while($row = $stmt->fetch()) 
     { 
      array_push($carMaker,$row['car_maker']); 
     } 
     return $carMaker; 
    } 

И вот как я получаю значения, которые будут переданы на другую страницу для отображения пользователю.

$setting = new setting($car_type,$car_maker,$rental_type,$rental); 
//$setting->connection; 
$setting->addCarType(); 
$setting->addCarMaker(); 
$setting->addRentalBy(); 
$carType=$setting->selectType(); 
$carMaker=$setting->selectMaker(); 


$json=array(); 
array_push($json,array("type"=>$carType,"maker"=>$carMaker)); 
echo $json; 

Наконец Ajax для извлечения и отображения данных

$("#submit").on("click",function() 
    { 

      $("#set_setting").submit(function(){    

      data = $(this).serialize() 
      $.ajax({ 
       type: "POST", 
       dataType: "html", 
       url: "submit_setting.php", //Relative or absolute path to response.php file 
       data: data, 
       success: function(data) { 
       //hide the form 
       $("#set_setting").slideUp("slow"); 
       //show the result 
       for (i = 0; i < data.length; i++) { 
        console.log(data);//outputs array 
        $(".the-return").html(data); 
       } 


       } 

      }); 
      return false; 

      }); 

     }); 

ответ

2

Вам необходимо пройти массив, как JSON и отправить его с помощью пары значений имени.

var data = {a:{'foo':'bar'},b:{'this':'that'}}; 
$.ajax({ url  : '/', 
     type  : 'POST',            
     data  : {'data':JSON.stringify(data)}, 
     success : function(){ } 
     }); 

И в бэкэнде (PHP):

$data = json_decode($_POST['data']); 
print_r($data); 
// Result: 
// Array("a" => Array("foo"=> "bar"), "b" => Array("that" => "this")) 
+0

Hii зрачок, если я хочу, чтобы соответствовать данным из другой таблицы, используя этот массив, то как я могу сделать, это означает, что можно получить значение поля формы массива затем сравните его, пожалуйста, дайте мне советы, спасибо – bhawani

+0

Вы можете распечатать данные, отправленные с запроса AJAX. Здесь вы уже получаете $ _POST. Используйте это. – Pupil