Partage
  • Partager sur Facebook
  • Partager sur Twitter

json_encode mise en ligne du site pb

Ca marche en local mais pas en ligne

Sujet résolu
    28 mai 2010 à 11:54:38

    Bonjour

    J'ai un problème avec $.ajax() pour afficher des resultats lors de l'appel ajax... Pour plus d'explications voici mon code :

    mapage.php
    <?php
    //la zone de texte ou j'ecris mon code postal
    echo '<input type="text" id="cp" name="cp" maxlength=5 value="'.$cp.'">';
    //mon champ ville
    echo '<input type="text" id="ville" name="ville" value="'.$ville.'">';
    ?>
    


    mapage.js
    $('input[name=cp]').autoComplete({
    	ajax: 'combo_cp.php', //je fais appel a un script ou se trouve la requete sql et le tableau renvoyant le resultat de cette requete
    	postData: {
    		hook1: 'Do something on hook1',
    		hook2: 1942,
    		hook3: 'Do something with hook3'
    	},
    	onSelect: function(event, ui){
    	       $('#ville').val(ui.data.ville); //j'affecte la valeur de la ville trouvee dans le code ajax dans l'input text "ville"
            }
    
    });
    


    combo_cp.php
    <?php
    //inclusion de la page qui se connecte a la base de données
    include('connection.php');
    
    $value = trim($_POST['value']);
    $num = strlen($value);
    $tab='';
    
    if($num>4){
    	$query = "SELECT ville, code_postal FROM table1 INNER JOIN table2 ON table1_id=table2_id WHERE code_postal LIKE '$value%' ORDER BY code_postal ASC"; //requete qui renvoit le code postal demandé et les villes correspondantes
    	$result = db_query($query);
    	$i=0;
    	while($row = db_fetch_array($result)){
    		$cp = $row[1];
    		//if($cp[4] == 0){ //pour garder uniquement les cp se terminant par zéro(évite les doublons!)
    		$tab[$i]['value'] = $row[1]; //valeur cp
    		$tab[$i]['display'] = $row[1].' '.utf8_encode($row[0]); //valeur cp, valeur ville
    		$tab[$i]['ville'] = utf8_encode($row[0]); //valeur ville
    		$i++;
    		//}//if
    	}//fin while
    }//fin if
    
    echo json_encode($tab);
    
    ?>
    


    Ce code fonctionne très bien en local, mais pas en ligne... Pourquoi lorsque je suis en ligne, si je tape un code postal dans mon champ $cp, ca ne m'affiche pas les resultats attendus (cp et villes) ? Pourtant en local ca fonctionne (ca affiche les resultats attendus dans une liste et si on clique sur une des lignes de cette liste ca va aller afficher le code postal dans le champ $cp et la ville dans le champ $ville)... Avez-vous une idée ?

    :::EDIT:::

    Dans firebug ca affiche cette erreur :
    Fatal error:  Call to undefined function json_encode() in /...monchemin.../combo_cp.php on line 24


    Cordialement,
    ginger
    • Partager sur Facebook
    • Partager sur Twitter
    Anonyme
      28 mai 2010 à 12:35:55

      version de php en local et en ligne ?

      ( edit ) parceque oui, c'est un problème php et pas JS, donc pas le bon forum mais c'est pas grave :)


      cadeau bonux :
      <?php
      	while($row = db_fetch_array($result)){
      		$tab[] = array (
                              'value' => $row[1], //valeur cp
                              'display' => $row[1].' '.utf8_encode($row[0]), //valeur cp, valeur ville
                              'ville' => utf8_encode($row[0]), //valeur ville
      		);
      		//}//if
      	}//fin while
      


      zont pas de nom tes champs dans la base ? parceque 1,0 en index c'est pas super clair :p
      • Partager sur Facebook
      • Partager sur Twitter
        28 mai 2010 à 13:46:55

        merci nod_

        Mmm mais sous macOsX comment fait-on pour trouver la version de php ?

        Si les champs de ma base ont des noms, je les mets dans la requete sql, ensuite j'affiche pour value par exemple le champ 1 appelé avec $row[1] ca fonctionne très bien. Qu'est ce qui n'est pas clair ? :)

        ::: EDIT :::

        Je suis allée sur le local et après les liens des dossiers ca affiche ceci :
        Apache/2.0.63 (Unix) PHP/5.2.11 DAV/2 (...)


        Donc je suppose que la version de php est 5.2.11 ??

        En tout cas la version en ligne est 5.2.13 et c'est sûr


        DONC je suppose que le pb vient du fait que ca ne soit pas les mêmes versions coté local et coté serveur ? Faut que je mette à jour celle du local ?


        :::::EDIT:::::
        Il suffisait de compiler le serveur avec json. Probleme resolu.

        Bonne apres midi a tous
        • Partager sur Facebook
        • Partager sur Twitter

        json_encode mise en ligne du site pb

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown