Voila mon probléme quand j'utilise un prefix du style membres mon autocomplete ne fonctionne pas
voici mon champ imput

<?php echo $this->Form->input('ville',array('label'=>"Ville : ",'id'=>'ville','class'=>'span8','title'=>"Veuillez inscrire votre ville. Facultatif","value"=>$membre'Membre']'ville'])); ?>

mon script

<script type="text/javascript">
$(document).ready(function(){
    $('#ville').autocomplete({
    source : 'ville.php',
    minLength : 3,
    });
    $("#musique").click(function(){

        if ($("#musique").is(":checked"))
        {
            $("#musique_type").show("fast");
        }
        else
        {
            $("#musique_type").hide("fast");
        }
    });
});
</script>

voici mon ville.php a la racine de mon site

<?php
/* veillez bien à vous connecter à votre base de données */
// on se connecte à MySQL
$db = mysql_connect('localhost', 'root', '');
// on sélectionne la base
mysql_select_db('covoit_world',$db)
 printf($_GET);
$term = $_GET'term'];
$requete = $bdd->prepare('SELECT * FROM villes WHERE name LIKE :term'); // j'effectue ma requête SQL grâce au mot-clé LIKE
$requete->execute(array('term' => '%'.$term.'%'));
$array = array(); // on créé le tableau
while($donnee = $requete->fetch()) // on effectue une boucle pour obtenir les données
{
    array_push($array, $donnee'name']); // et on ajoute celles-ci à notre tableau
}
echo json_encode($array); // il n'y a plus qu'à convertir en JSON
?>

et enfin ma function dans le controller de cake

function ville(){

        $term = $_GET'term'];

        $this->loadModel('Ville');

        if (is_numeric($term))
        {
        $this->loadModel('Ville');
            if ( $this->RequestHandler->isAjax() ) {
                        Configure::write ( 'debug', 0 );
                        $this->autoRender=false;
                        $requetes=$this->Ville->find('all',array('conditions'=>array('Ville.code LIKE'=>'%'.$_GET'term'].'%')));
                            $i=0;
                            foreach($requetes as $requete){
                                $response$i]'value']=$requete'Ville']'name'].' '.$requete'Ville']'code'].' '.$response$i]'dep']=$requete'Ville']'dep'];
                            $i++;
                            }
                        echo json_encode($response);
                    }else{
                        if (!empty($this->data)) {
                            $this->set('villes',$this->paginate(array('Ville.code LIKE'=>'%'.$this->data'Ville']'code'].'%')));
                        }
                    }
        }else{

        if ( $this->RequestHandler->isAjax() ) {
                    Configure::write ( 'debug', 0 );
                    $this->autoRender=false;
                    $requetes=$this->Ville->find('all',array('conditions'=>array('Ville.name LIKE'=>'%'.$_GET'term'].'%')));
                        $i=0;
                        foreach($requetes as $requete){
                            $response$i]'value']=$requete'Ville']'name'].' '.$requete'Ville']'code'].' '.$response$i]'dep']=$requete'Ville']'dep'];
                        $i++;
                        }
                    echo json_encode($response);
                }else{
                    if (!empty($this->data)) {
                        $this->set('villes',$this->paginate(array('Ville.name LIKE'=>'%'.$this->data'Ville']'name'].'%')));
                    }
                }
        }
    }

bon voila le probleme quand je regarde Firebug sur le debug html de la requete du get j'ai

Parse error: syntax error, unexpected T_STRING in D:\site internet\wamp\www\covoit_world\app\webroot\membres\ville.php on line 10

or la ligne 10 c printf($_GET);

voila merci d'avance pour votre aide

3 réponses


kal-el
Réponse acceptée

Quelle est l'utilité ici de ton fichier ville.php?
Fais un var_dump a la place du printf :)

Tu as oublié un point virgule sur la ligne d'avant :)

merci pour l'info mais malheureusement ceci ne résout pas mon probléme