2014-12-15 19 views
6

Bene, ho questo codice Ajax che restituirà il risultato da MySql nel blocco Success.
Ottieni risposta Specfic da MySql in jQuery AJAX Success

$.ajax({ 
    type:"POST", 
    url:"index.php", 
    success: function(data){ 
      alert(data);     
     } 
}); 

mia domanda

$sql = "SELECT * FROM tablename"; 
$rs=parent::_executeQuery($sql); 
$rs=parent::getAll($rs); 
print_r($rs); 
return $rs 

mio array di risposta in allarme di successo AJAX

Array 
(
    [0] => Array 
     (
      [section_id] => 5 
      [version] => 1 
      [section_name] => Crop Details 
      [id] => 5 
      [document_name] => Site Survey 
      [document_master_id] => 1 
      [document_section_id] => 5 
     ) 

    [1] => Array 
     (   
      [section_id] => 28 
      [version] => 1 
      [section_name] => Vegetative Report   
      [id] => 6 
      [document_name] => Site Survey 
      [document_master_id] => 1 
      [document_section_id] => 28 
     ) 

) 

voglio ottenere solo section_name e document_name dal risultato in modo che io possibile aggiungere questi due valori alla mia lista.

+1

Usa 'json_encode()' per restituire la risposta come JSON, così può analizzarlo in Javascript. – Barmar

risposta

3

Non restituire la risposta utilizzando print_r(), utilizzare json_encode():

echo json_encode($rs); 

Poi nel Javascript, si può fare:

$.ajax({ 
    type:"POST", 
    url:"index.php", 
    dataType: 'json' 
    success: function(data){ 
     for (var i = 0; i < data.length; i++) { 
      console.log(data[i].section_name, data[i].document_name);   
     } 
    } 
}); 
+0

Grazie. il mio console.log mostra 'parseerror' – Matarishvan

+0

Assicurati che lo script PHP non emetta altro che questa istruzione 'echo'. Vai alla scheda Rete per vedere la risposta completa, così puoi vedere se c'è qualcos'altro che viene echeggiato. – Barmar

+0

ha funzionato. Ho avuto in alto, cosa che non ho osservato. Grazie ancora. – Matarishvan

2

cambiare la vostra query di selezione con

$sql = "SELECT section_name,document_name FROM tablename"; 
+0

Grazie. Ma ho aderito a più tavoli. non potevo avere questa domanda Devo filtrarlo in ajax stesso. – Matarishvan

+1

Perché non hai potuto avere questa domanda? Tutto ciò che sta facendo è filtrare solo per avere i valori che vuoi. –

+0

Quindi non avrei chiesto questa domanda – Matarishvan

2
$sql = "SELECT * FROM tablename"; 
$rs=parent::_executeQuery($sql); 
$rs=parent::getAll($rs); 

return json_encode($rs); 

index.php

$.ajax({ 
    type:"POST", 
    url:"index.php", 
    success: function(data){ 
     alert(data); 
     var data = JSON.parse(data); 
     /* you can use $.each() function here */     
    } 
}); 
+0

che mi sta dando Uncaught SyntaxError: Token imprevisto S – Matarishvan

+0

try by- echo json_encode ($ rs) invece di return – rut2

1

Fate questo:

$sql = "SELECT * FROM tablename"; 
$rs=parent::_executeQuery($sql); 
$rs=parent::getAll($rs); 
$resp = array(); 
foreach($rs as $each){ 
    $resp[]['section_name'] = $each['section_name']; 
    $resp[]['document_name'] = $each['document_name']; 
} 
return json_encode($resp); 

risposta JSON accesso in questo modo:

for (var i = 0; i < data.length; i++) { 
    console.log(data[i].section_name, data[i].document_name);   
} 
Problemi correlati