Partage
  • Partager sur Facebook
  • Partager sur Twitter

Moteur de recherche React ne reagi pas

    18 janvier 2023 à 0:09:13

    Bonsoir à tous, je suis toujours sur la création d'un moteur de recherche sous React qui intéroge un script PHP. Mais il ne fait aucune proposition et la console n'indique aucune erreur.
    Donc voici mon App.js

    import React from 'react'
    import Turnstone from 'turnstone'
    
    const styles = {
      input: 'border p-2 bg-white w-full',
      listbox: 'border p-2 bg-white w-full'
    }
    
    // Set up listbox contents.
    const listbox = {
      
      data: (query) =>
        fetch(`http://essai/mr/query.php?query=${encodeURIComponent(query)}`)
          .then(res => res.json())
    }
    
    export default function BasicExample() {
      return <Turnstone id="autocomplete" listbox={listbox} styles={styles} typeahead={false} />
    }

    et voici mon script php qui à l'air de fonctionner car dans l'url il affiche les resulta en Json

    <?php
    
    
    header('Access-Control-Allow-Origin: http://localhost:3000');
    
    
     header("Content-Type: application/json");
    
    $nbr = 0;
    
    $data = array();
    
    $liste = array();
    
    //fetch.php
    $connect = mysqli_connect("localhost", "root", "", "immoffre");
    $output = '';
     
    $name = $_GET['query'];
    
     
    
    
    //fetch.php
    $connect = mysqli_connect("localhost", "root", "", "immoffre");
    $output = '';
    if(isset($name))
    {
     $search = mysqli_real_escape_string($connect, $name);
     $query =  "
     SELECT * FROM villes_france 
     WHERE ville_nom LIKE '%" . $search . "%'
     OR ville_slug LIKE '%" . $search . "%' 
     OR ville_code_postal LIKE '%" . $search . "%' 
     LIMIT 5
    ";
    }
    else
    {
     $query = "
      SELECT * FROM tbl_customer ORDER BY CustomerID
     ";
    }
    $result = mysqli_query($connect, $query);
    if(mysqli_num_rows($result) > 0)
    {
     
     while($row = mysqli_fetch_array($result))
     {
    
    
        $nbr++;
        $data[$nbr]   =   $row["ville_nom"];
     
    
    
     
     }
     
    }
     
    echo json_encode($data);
    
     
    ?>

    Cordialement



    • Partager sur Facebook
    • Partager sur Twitter
      18 janvier 2023 à 8:46:11

      Hello,

      Plusieurs chose à noter :

      Côté back php :

      • Les tableaux s'écrivent de nos jours avec des crochets "[" et "]" plutôt que la syntaxe "array()"
      • Pourquoi il y a 2 fois la connexion à la bdd ?
      • Si je ne passe pas de champs name dans les paramètres de la requête, le script plante
      • mysqli même si je préfère PDO à des requêtes préparé.
      • Pas besoin de compter le nombre de lignes récupéré
      • Pas besoin de la balise php fermante à la fin et d'ailleurs c'est même plus opti sans
      • Je viens de check, pas besoin de faire 2 requêtes en fonction de si ça existe ou pas car "like '%%'" retourne tout

      Si tu suis ou as vu un tutoriel je te conseil qui indique des choses pas bonnes comme indiqué ci-dessu, je te conseil d'en changer

      Côté front avec react, pas grand chose à dire, je ne connais pas Turnstone mais de ce que j'ai pu voir ça devrait fonctionner. Sauf s'il faut plus de settings dans l'objet "listbox".

      • Partager sur Facebook
      • Partager sur Twitter
        18 janvier 2023 à 21:01:27

        Merci de ton aide, effectivement j'ai mis 2 fois la connexion à la base de donné c'a ne sert à rien et le compteur de ligne c'est pour compter les key, pour faire à l'identique le json de l'exemple du react. Mon moteur de recherche permet de retrouver des nom de ville.

        Voila coté php/Json

        • Partager sur Facebook
        • Partager sur Twitter

        Moteur de recherche React ne reagi pas

        × 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