2010-10-26 4 views
0

Je lance une requête mysql et obtient les résultats avec succès. Cependant, je ne peux pas lire les éléments du tableau depuis le côté javascript. Quelqu'un peut-il aider ??Comment transformer un tableau php en tableau javascript

//JAVASCRIPT makes a request 

    function profiles(){ 

    $.post('dbConn.php', { opType:"getProfileList" }, fillProfileCombo, "text"); 

    } 


    function fillProfileCombo(res) { 

    alert(res); 

    } 

//dbConn.php takes the request , gets the result and passes via echo as it is shown as follows: 


    //RETURN PROFILE LIST 
    else if (!strcmp($opType, "getProfileList")){ //no param is coming 

    $connect = mysql_connect($db_host, $db_user, $db_pass) or die(mysql_error()); 
    mysql_select_db($db_name) or die(mysql_error()); 

    $profiles = mysql_query(" SELECT DISTINCT profileName FROM `map_locations` "); 
    $row = mysql_fetch_array($profiles); 
    /*while() { 
    echo $row['FirstName'] . " " . $row['LastName']; 
    echo "<br />"; 
    } 
    */ 
    //$data = array(); 
    //$row = mysql_fetch_assoc($profiles) 
    /*while($row = mysql_fetch_assoc($profiles)) 
    { 
    $data[] = $row; 
    }*/ 

    if ($row){ 
    echo $row; 
    } else { 
    echo "ERROR occured"; 
    } 


    } 

// PROBLÈME:

// quand je change d'écho $ row; en echo $ row [0];, je vois le premier élément dans une zone d'alerte ... La requête fonctionne réellement ..

// mais quand je change res à res [0], il ne montre rien - ce qui est normal parce que je ne savent pas comment lancer php array dans un tableau js ..

function fillProfileCombo(res) { 
    alert(res[0]); // does not work.. 
} 

Je ne veux pas utiliser JSON par la voie ... Je ne suis pas très bon. Je ne veux pas le gâcher. Toute suggestion et aide est appréciée.

+0

Pourquoi ne voulez-vous pas utiliser JSON? C'est l'un des moyens les plus simples de représenter les structures de données en JavaScript. – Phil

+0

Pouvez-vous me donner un exemple sur ce code? – Ozlem

Répondre

0
// PHP 
$res = array(); 
while ($row = mysql_fetch_array($profiles)) { 
    $res[] = $row['profileName']; 
} 

header('Content-type: application/json'); 
echo json_encode($res); 

// JavaScript 
$.post('dbConn.php', { opType:"getProfileList" }, function(data) { 
    alert(data.length + " profiles returned"); 
}, "json"); 
+0

Merci Phil, j'ai corrigé mon code en fonction de ce que vous m'avez envoyé .. – Ozlem

0

Merci Phil..This travaille maintenant .. J'ai suivi votre chemin en changeant STH .. Peut-être que cela fonctionnait, mais je ne pourrais pas l'exécuter. Très similaire sauf quelques changements. Je l'ai changé comme comme ceci:

// PHP

 $data = array(); 
     while($row = mysql_fetch_assoc($profiles)) 
     { 
      $data[] = $row; 
     } 

     if ($data){ 
      echo json_encode($data); 

     } else { 
      echo $data; 
     } 

// JS

function profiles(){ 

     //$.post('dbConn.php', { opType:"getProfileList" }, fillProfileCombo, "json"); 
     $.post('dbConn.php', { opType:"getProfileList" }, fillProfileCombo, "json"); 

    } 


    function fillProfileCombo(data) { 
     alert(data[1].profileName); 

    } 
+0

Vous devriez probablement tester la longueur du tableau JSON avant de tenter d'accéder à des index spécifiques. – Phil

+0

ouais j'ai essayé ce que vous avez dit. J'ai essayé tout ce que tu m'as envoyé tel quel. Mais je ne pouvais pas le lancer. Quoi qu'il en soit, je l'ai corrigé avec votre aide. Merci beaucoup. Ozlem. – Ozlem

Questions connexes