Petit script

newbi1 Messages postés 4 Statut Membre -  
newbi1 Messages postés 4 Statut Membre -
Bonjour,

Je suis débutant, je cherche à créé un petit script tout simple

Ca se présente comme un arbre

Je vais poser une question et proposer plusieurs réponses.
En fonction de la réponse une deuxième question personnalisée s'affiche.

une sorte d'outil de diagnostique, ou bien je ne sais pas si vous connaissez "le livre dont vous êtes le héro"

vous pouvez choisir et en fonction de votre choix l'histoire change...

Merci pour votre aide je ne sais pas comment mettre ca en place

3 réponses

  1. arthezius Messages postés 3756 Statut Membre 475
     
    Ça me semble pas compliqué.

    Tu fais deux tables:
    - texte
    - choix

    Dans la première (texte), tu enregistres le début de l'histoire ou la première question.
    Dans la deuxième, tu enregistres l'id de la page de destination (correspondant à la table texte).
    Pour faire simple, sur ta page, tu identifie le texte à afficher par une variable contenu dans l'url.
    En dessous, tu listes les choix à partir de cette même variable. Et tu créé des liens vers les pages de destinations.

    Voici un début de pistes à suivre.
    0
    1. newbi1 Messages postés 4 Statut Membre
       
      a part la balise <?php > je ne connais pas grand chose, il n'y aurais pas un script quelque part qui s'approcherait de ce que je veux faire?
      0
  2. newbi1 Messages postés 4 Statut Membre
     
    En fait j'ai trouvé un script préfabriqué
    le seul problème c'éest qu'il a deux niveau et j'aimerais un peu d'aide pour faire le troisième niveau

    voici le fichier index.php
    <html>
    <head> 
    <title>AFFICHER UNE LISTE DÉROULANTE EN FONCTION D'UNE AUTRE LISTE SANS RECHARGER LA PAGE OU PASSER L'INFORMATION PAR L'URL EN UTILISANT LA TECHNOLOGIE AJAX</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
        <script type="text/javascript">
    	/**
    	 * Permet d'envoyer des données en GET ou POST en utilisant les XmlHttpRequest
    	 */
    	function sendData(param, page)
    	{
    		if(document.all)
    		{
    			//Internet Explorer
    			var XhrObj = new ActiveXObject("Microsoft.XMLHTTP") ;
    		}//fin if
    		else
    		{
    		    //Mozilla
    			var XhrObj = new XMLHttpRequest();
    		}//fin else
    
    		//définition de l'endroit d'affichage:
    		var content = document.getElementById("contenu");
    		
    		XhrObj.open("POST", page);
    
    		//Ok pour la page cible
    		XhrObj.onreadystatechange = function()
    		{
    			if (XhrObj.readyState == 4 && XhrObj.status == 200)
    				content.innerHTML = XhrObj.responseText ;
    		}
    
    		XhrObj.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    		XhrObj.send(param);
    	}//fin fonction SendData
    
        </script>
    </head>
    <body>
    <b>
    Créer par Hanini Yassine, Le 29/09/2005<br />
    <br />
    Cette page à pour but d'afficher une liste déroulante en foncion d'une autre liste sans recharger la page ou passer l'information par l'url en utilisant la technologie AJAX<br />
    <br />
    <a href="http://perso.wareteam.com/comment_demander_des_informations_au_serveur_sans_recharger_la_page-.php">http://perso.wareteam.com/comment_demander_des_informations_au_serveur_sans_recharger_la_page-.php</a><br />
    <br />
    </b>
    <?php
       // Paramètres de la Connexion à la base MYSQL
       $user="root";
       $host="localhost";
       $password="";
       $database="base";
       $i=0; // variable de test
       $j=0; // variable pour garder la valeur du premier enregistrement catégorie pour l'affichage
           
       $connexion = mysql_connect($host,$user,$password) or die ("Connexion au serveur impossible");
        
       mysql_select_db($database,$connexion);
        
       // Séléction de tous les enregistrements de la table Catégorie
       $rq="Select * from script_categorie order by designation;";
       $result= mysql_query ($rq) or die ("Select impossible");
       echo "<form method='POST' action='valid.php'>";?>   <select size="1" name="cat" OnChange="sendData('id='+this.value,'liresc.php')" onKeyUp="sendData('id='+this.value,'liresc.php')">
    
    <?php     
       while ($dt=mysql_fetch_row($result))
       {
        // Remplir la liste déroulante des catégorie	
    	echo "<option value=".($dt[0]).">".($dt[1])."</option>";
        if ($i==0) { $j=$dt[0]; $i=1; } // garder la valeur du premier enregistrement
       }
        
       ?>    
       </select><br><br>
       
    
    
       <div id="contenu">
     <?php  
      // affichage des sous-catégorie appartenant à la première catégorie.
       echo "<select size='1' name='souscat'>";   
        $rq="Select * from script_sous_categorie where idcat=".$j." order by designation;";
        $result= mysql_query ($rq) or die ("Select impossible");
         // $i = initialise le variable i
        $i=0;
        while ($dt=mysql_fetch_row($result))
        { 
    	 echo "<option value=".utf8_encode($dt[0]).">".utf8_encode($dt[2])."</option><br>";
        }    
    	echo "</select>";
       ?>   
       </div>
    </form>
    </body>
    </html>
        
    
    
    


    et le liresc.php

    <?php
    header('Content-type: text') ; // on déclare ce qui va être afficher
     
    // test des POST emis
    if(isset($_POST['id']) && !empty($_POST['id']) ){
       $user="root";
       $host="localhost";
       $password="";
       $database="base";
       $connexion = mysql_connect($host,$user,$password) or die ("Connexion au serveur impossible");   
       mysql_select_db($database,$connexion);
        $rq="Select * from script_sous_categorie where idcat=".$_POST['id']." order by designation;";
        $result= mysql_query ($rq) or die ("Select impossible");
         // $i = initialise le variable i
        $i=0;
    	if (mysql_num_rows($result)>0)
    	{
    	  echo "<select size='1' name='souscat'>";
    	}
    	else
    	{
    	  echo utf8_encode("Pas de sous catégories disponible");	
    	}
        while ($dt=mysql_fetch_row($result))
        { 	
    	 echo "<option value=".utf8_encode($dt[0]).">".utf8_encode($dt[2])."</option><br>";
        }    
    	echo "</select>";
    }
    
    ?>
    0