Question pour un site PHP/MySQL

DvP
Petit nouveau ! | 5 Messages

22 sept. 2005, 19:55

Hello,

Voilà j'ai posé un sujet similaire sur un autre site mais je reviens sur ma décision, je ferai sans Javascript : juste en PHP/MySQL.

Je dois faire pour un ami un site (tout du moins 1 page) avec une dizaine de liste de choix dont les données sont dans une DB MySQL + 5 ou 6 cases à cocher. Le tout doit être très dynamique mais sans raffraichissement total de la page.

Le principe est qu'une personne selectionne divers produits dans les liste de choix (catégories de produits) et en fonction de ce qu'elle choisit, cela affiche à coté le descriptif du produit correspondant mais aussi, que cela mette à jour un prix total en bas... et que celui-ci change au fur et à mesure des choix...

J'ai quand même commencé à faire quelque chose en HTML/Javascript pour sous montrer comment je voudrais que ca réagisse mais si c'est complétement mal codé ;)
Ici : http://ptitdav69.free.fr/testsite/Ok4.html

Je ne sais pas trop comment m'y prendre pour avoir ce rendu en PHP/MySQL.
En plus ce qu'il y a dans la page que j'ai faite, c'est faux car les prix ne s'ajoute pas correctement... mon but serai que le prix en bas change au fur et à mesure des choix (sans valider en cliquant sur un bouton si possible).

Avez-vous des exemples concrets pour m'aider please ?

Merci et A+,
DvP

Mammouth du PHP | 19672 Messages

22 sept. 2005, 20:29

Sans JavaScript, ce que tu veux faire est impossible : il faut un langage client, or le PHP est un langage serveur. Les informations pour être mises à jour doivent donc être envoyées au serveur où PHP récupère les informations, procède aux calculs nécessaires et retourne une page HTML mise à jour. JavaScript en revanche s'exécute coté client, donc si au départ on envoi dans le JavaScript les variables avec les informations nécessaires, il est possible de faire une mise à jour automatique sans rechargement de la page.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

DvP
Petit nouveau ! | 5 Messages

22 sept. 2005, 22:20

Merci pour les renseignements Cyrano !

J'ai vu dans la FAQ un excellent script pour les regions et départements avec des listes liées.
Je m'en suis donc inspiré et modifié pour arriver à ca (pour tester) :
<?php
/* Variables de connexion */
$serveur = "********";
$admin   = "********";
$mdp     = "********";
$base    = "********";
/* On recupere si elle existe la valeur de la region envoye par le formulaire */
$idr = isset($_POST['region'])?$_POST['region']:null;
?>
<head>
<title>Selection</title>
</head>
<body style="font-family: verdana, helvetica, sans-serif; font-size: 85%">
<h3>Version 100% PHP</h3>
<p>Test selection et affichage dynamique d'un texte.</p>

<?php
/* On etablit la connexion a MySQL avec mysql_pconnect() */
$connexion = mysql_pconnect($serveur, $admin, $mdp);
if($connexion != false)
{
    $choixbase = mysql_select_db($base, $connexion);
    $sql1 = "SELECT `id_region`, `region`".
    " FROM `region`".
    " ORDER BY `id_region`";
    $rech_regions = mysql_query($sql1);
    $code_region = array();
    $region = array();
    /* On active un compteur pour les regions */
    $nb_regions = 0;
    if($rech_regions != false)
    {
        while($ligne = mysql_fetch_assoc($rech_regions))
        {
            array_push($code_region, $ligne['id_region']);
            array_push($region, $ligne['region']);
            /* On incremente de compteur */
            $nb_regions++;
        }
    }
    ?>
<form action="<?php echo($_SERVER['PHP_SELF']); ?>" method="post" id="chgdept">
<fieldset style="border: 3px double #333399">
<legend> Selectionnez une région </legend>
<select name="region" id="region" onchange="document.forms['chgdept'].submit();">
  <option value="-1">- - - Choisissez une region - - -</option>
    <?php
    for($i = 0; $i < $nb_regions; $i++)
    	{	?>
  	<option value="<?php echo($code_region[$i]); ?>"<?php echo((isset($idr) && $idr == $code_region[$i])?" selected=\"selected\"":null); ?>><?php echo($region[$i]); ?></option>

	<?php    }    ?>
</select>
    <?php
    mysql_free_result($rech_regions);
    /* On commence par verifier si on a envoye un numero de region */
    if(isset($idr) && $idr != -1)
    {	
	$toto = $_POST['region'];
	$sql_nom = "SELECT `region` FROM `region` WHERE `id_region` = $toto";
	$nameofregion = mysql_query($sql_nom);
        echo $nameofregion;
            }
?>

<br /><input type="submit" name="ok" id="ok" value="Envoyer" />
</fieldset>
</form>
<?php
    /* on ferme la connexion */
    mysql_close($connexion);
}
else
{
    /* Erreur MySQL */
?>
<p>Un incident s'est produit lors de la connexion a la base de donnees, veuillez essayer a nouveau ultérieurement.</p>
<?php
}
?>

</body>
</html>
Le mécanisme à l'air bon car j'arrive à afficher l'id de la région mais lorsque je souhaite réaffincher le nom de la région (à terme cela pourrait être un autre champ de la table), cela m'affiche : "Resource id #3" ...

Je suis sûr d'avoir fait une boulette, ca c'est sûr ! ;) Mais où ?
Modifié en dernier par DvP le 22 sept. 2005, 22:46, modifié 1 fois.

Mammouth du PHP | 19672 Messages

22 sept. 2005, 22:27

Normal, tu n'as pas récupéré le résultat. Proposition de correction.
//.....
        $toto = $_POST['region'];
        $sql_nom = "SELECT `region` FROM `region` WHERE `id_region` = ". $toto .";";
        $nameofregion = mysql_query($sql_nom);
        $nom = mysql_result($nameofregion,0);
        echo("<p>". $nom ."</p>");
//.....
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

DvP
Petit nouveau ! | 5 Messages

22 sept. 2005, 22:32

Super ! Merci Cyrano !!! Tu es très rapide :)

Je me suis apperçu trop tard de mon oubli en relisant le tutorial http://www.phpfrance.com/tutoriaux/inde ... l-avec-php

Bon avec tous ces éléments je devrai arriver à avancer un peu !

Mammouth du PHP | 19672 Messages

22 sept. 2005, 22:33

Un petit [Résolu] peut-être :?: :)
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

DvP
Petit nouveau ! | 5 Messages

22 sept. 2005, 22:37

Bah, à vrai dire, je reviendrai certainement vers toi pour d'autres problèmes car je suis loin d'avoir accompli ce que je dois faire ;) ... Donc je sais pas si c'est pas mieux de le laisser ouvert nan ?

Mammouth du PHP | 19672 Messages

22 sept. 2005, 22:39

non, celui-ci est terminé, nouveau sujet = nouveau message :)
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

DvP
Petit nouveau ! | 5 Messages

22 sept. 2005, 22:45

Oki chef :)