Page 1 sur 1

récupération de variable

Posté : 22 janv. 2013, 01:59
par neomega
bonsoir ,

voici mon formulaire
<?php require('../include.php'); 
protect();


echo("<?xml version=\"1.0\" encoding=\"iso-8859-1\"?>\n");
/* Variables de connexion : ajustez ces paramètres selon votre propre environnement */
$serveur = "localhost";
$admin   = "root";
$mdp     = "";
$base    = "commercial";
/* On récupère si elle existe la valeur de la région envoyée par le formulaire */
$idr = isset($_POST['categorie'])?$_POST['categorie']:null;
?>
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<title></title> 
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<meta http-equiv="content-language" content="fr" />
<meta name="robots" content="noindex" />
<link href="<?php echo $css ?>style.css"	title="Défaut" rel="stylesheet" type="text/css" media="screen" />
<link href="<?php echo $css ?>menu.css"	title="Défaut" rel="stylesheet" type="text/css" media="screen" />
<link href="<?php echo $css ?>formulaire.css"	title="Défaut" rel="stylesheet" type="text/css" media="screen" />
</head>
<body>
<?php include "../menu.php" ?> 

        <div class="news"><!-- News -->
            <div class="formulaire">	
<?php

/*--------------------------------------------------------------------------------*/
if(isset($_POST['send'])){
$latopcategorie= $_POST['lidcategorie'] ;


		$locat = $db->prepare("INSERT INTO `location`(`id_users`, `titre`, `sous_titre`, `info_transport`, `resume`, `url_site`, `categorie`, `sous_categorie`, `meta_titre`, `meta_clef`, `meta_description`, `date_insert`) 
		VALUES ( :id_user , :titre , :sous_titre , :info_transport , :resume , :url_site , :categorie , :sous_categorie , :meta_titre , :meta_clef , :meta_description , NOW());");
		$locat->execute(array(
			"titre" => $_POST['titre'],
			"sous_titre" => $_POST['sous_titre'],
			"id_user" => $_SESSION['users']->id,
			"info_transport" => $_POST['info_transport'],
			"resume" => $_POST['resume'],
			"url_site" => $_POST['url_site'],
			"categorie" => $latopcategorie ,// $_POST['categorie']
			"sous_categorie" => $_POST['sous_categorie'],
			"meta_titre" => $_POST['meta_titre'],
			"meta_clef" => $_POST['meta_clef'],
			"meta_description" => $_POST['meta_description']
			
		));


		echo "<div class=\"succes\">Votre demande a bien ete enregistrer</div>";

//redirect( ''. $site .'emplacement/emplacement.php');
}

?>

<!-------------------ajout fonction liste --------------------------->
<?php
/* On établit la connexion à MySQL avec mysql_pconnect() plutôt qu'avec mysql_connect()
*  car on aura besoin de la connexion un peu plus loin dans le script */
$connexion = mysql_pconnect($serveur, $admin, $mdp);
if($connexion != false)
{
    $choixbase = mysql_select_db($base, $connexion);
    $sql1 = "SELECT *".
    " FROM `categorie`".
    " ORDER BY `id_top_categorie`";
    $rech_regions = mysql_query($sql1);
    $code_region = array();
    $region = array();
    /* On active un compteur pour les régions */
    $nb_regions = 0;
    if($rech_regions != false)
    {
        while($ligne = mysql_fetch_assoc($rech_regions))
        {
            array_push($code_region, $ligne['id_top_categorie']);
            array_push($region, $ligne['top_categorie']);
            /* On incrémente de compteur */
            $nb_regions++;
        }
    }
    ?>
<form action="form_emplacement.php" method="post" id="chgdept" dir="ltr" lang="fr">

<table align="center" width="450" border="0" cellspacing="5" cellpadding="5">
		<tr>
	    <td align="center" colspan="2" ><h1>Demande emplacement</td>
		</tr>
		<tr>
		<td><p><label for="name">Catégorie<font size="2" color="FF0000">*</font></label></p></td>
		<td>
		
		
		

<!----------------------------------------------------------------------------------------------->
<legend>Sélectionnez une région</legend>
<select name="categorie" id="categorie" onchange="document.forms['chgdept'].submit();">
  <option value="-1">- - - Choisissez une categorie - - -</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 vérifier si on a envoyé un numéro de région et le cas échéant s'il est différent de -1 */
    if(isset($idr) && $idr != -1)
    {
        /* Cération de la requête pour avoir les départements de cette région */
        $sql2 = "SELECT *".
        " FROM `sous_categorie`".
        " WHERE `id_top_categorie` = ". $idr ."".
        " ORDER BY `id_sous_categorie`;";
        if($connexion != false)
        {
            $rech_dept = mysql_query($sql2, $connexion);
            /* Un petit compteur pour les départements */
            $nd = 0;
            /* On crée deux tableaux pour les numéros et les noms des départements */
            $code_dept = array();
            $nom_dept = array();
            /* On va mettre les numéros et noms des départements dans les deux tableaux */
            while($ligne_dept = mysql_fetch_assoc($rech_dept))
            {
                array_push($code_dept, $ligne_dept['id_sous_categorie']);
                array_push($nom_dept, $ligne_dept['sous_categorie']);
                $nd++;
            }
            /* Maintenant on peut construire la liste déroulante */
            ?>
<select name="sous_categorie" id="sous_categorie">
            <?php  
            for($d = 0; $d<$nd; $d++)
            {
                ?>
  <option value="<?php echo($nom_dept[$d]); ?>"<?php echo((isset($dept_selectionne) && $dept_selectionne == $nom_dept[$d])?" selected=\"selected\"":null); ?>><?php echo($nom_dept[$d].""); ?></option>
                <?php
            }
?>
</select>

<?php
        }
        /* Un petit coup de balai */
        mysql_free_result($rech_dept);
    }
?>
<!-------------------------------------------------------------------------------------------------------------------------------->	
			
			
			</td>
		
		</tr>
		<tr>
		<td><p>
		  <label for="name">Titre<font size="2" color="FF0000">*</font></label></p></td>
		<td><input name="titre" type="text" required="required"></td>
		</tr>
		<tr>
		<td><p><label for="name">Sous titre<font size="2" color="FF0000">*</font></label></p></td>
		<td><input name="sous_titre" type="text" required="required"></td>
		</tr>
		<tr>
		<td><p><label for="name">information livraison<font size="2" color="FF0000">*</font></label></p></td>
		<td><input name="info_transport" type="text" required="required"></td>
		</tr>
		<tr>
		<td><p><label for="name">résumé<font size="2" color="FF0000">*</font></label></p></td>
		<td><input name="resume" type="text" required="required"></td>
		</tr>
		<tr>
		<td>&nbsp;</td>
		<td>&nbsp;</td>
		</tr>
		<tr>
		<td><p><label for="name">Url de votre site<font size="2" color="FF0000">*</font></label></p></td>
		<td><input name="url_site" type="text" required="required"></td>
		</tr>
		<tr>
		<td><p><label for="name">méta titre<font size="2" color="FF0000">*</font></label></p></td>
		<td><input name="meta_titre" type="text" required="required"></td>
		</tr>
		<tr>
		<td><p><label for="name">méta clef "10 mots max"<font size="2" color="FF0000">*</font></label></p></td>
		<td><input name="meta_clef" type="text" required="required"></td>
		</tr>
		<tr>
		<td><p><label for="name">méta description<font size="2" color="FF0000">*</font></label></p></td>
		<td><input name="meta_description" type="text" required="required"></td>
		</tr>
		
		
		</table>

		
<input name="send" type="submit" value="Inscription">


</form>
<?php
    /* Terminé, on ferme la connexion */
    mysql_close($connexion);
}
else
{
    /* Si on arrive là, c'est pas bon signe, il faut vérifier les 
    * paramètres de connexion, mot de passe, serveur pas démarré etc... */
?>
<p>Un incident s'est produit lors de la connexion à la base de données, veuillez essayer à nouveau ultérieurement.</p>
<?php
}
?>
		</div>	
		</div>
				  
		</div>
		<!--  CADRE COULEUR -->
		
<?php include "../bas.php" ?>
</body>
</html>

je souhaiterai que la valeur de catégorie qui est mis sur ma BDD ne soit pas son id mais sont texte
<?php echo($region[$i]); ?>
ligne 111

car actuellement et pour que le script de liste lier puisse fonctionner il m'envoi la valeur
<?php echo($code_region[$i]); ?>
lign 111

mais je n'arrive pas a la récupérer sans faire tout planter

j'ai essayer d'ajouter un <input type="hidden" mais sa me retourne "array" et non le nom de la categorie


pourriez vous m'aider svp

Re: récupération de variable

Posté : 22 janv. 2013, 09:53
par xTG
Ce qui fait tout planter à mon avis c'est la structure de ta table qui elle est faite pour un numérique non ?
De plus je ne trouve pas sain d'insérer un nom... Une clé étrangère est justement la bonne conception pour ce type de cas.

Re: récupération de variable

Posté : 23 janv. 2013, 00:03
par neomega
merci beaucoup j'ai suivi ton conseil et est mis son id plutôt que son nom

et sa marche nikel