[PHP] Perte de variable après POST de FORMula

Fermé
guichoux Messages postés 6 Date d'inscription jeudi 12 mars 2009 Statut Membre Dernière intervention 12 mars 2009 - 12 mars 2009 à 10:00
guichoux Messages postés 6 Date d'inscription jeudi 12 mars 2009 Statut Membre Dernière intervention 12 mars 2009 - 12 mars 2009 à 12:15
Bonjour à tout le monde,
J'ai un soucis que je n'arrive pas à réglé, j'y ai passé tout hier et ce matin si je n'arrive pas à la regler je crois que je vais me tirer une balle ...
C'est un truc tout bête j'en suis persuadé mais je ne vois pas où.
J'ai un formulaire html qui me sert en fait à éditer du texte pour la création de questions dans une FAQ.
Il y a donc des input et des text-areas, dont certaines se remplissent toutes seules (si c'est une nouvelle question) ou récuperent des données (si on veut re-éditer une question)
Pour mes text-areas j'utilise TinyMCE.
Quand l'utilisateur clique sur aperçus ou sur enregistrer, sur la page de traitement du formulaire (edit_question.php) je récupere avec des $_POST les valeurs remplies. Seulement voicie ce que j'obtiens :
Notice: Undefined index: titrequestion in C:\Documents and Settings\Stagiaire\Bureau\Site\edit_question.php on line 14.
Notice: Undefined index: reponse in C:\Documents and Settings\Stagiaire\Bureau\Site\edit_question.php on line 16.
Notice: Undefined index: view in C:\Documents and Settings\Stagiaire\Bureau\Site\edit_question.php on line 21.
Notice: Undefined index: view in C:\Documents and Settings\Stagiaire\Bureau\Site\edit_question.php on line 81.
Si quelqu'un sait pourquoi je ne peux pas récupérer ces fichues valeurs, je suis preneur :/
Je ne pense pas que celà vienne de TinyMCE, peut être du Javascript?
Voici mon formulaire :
<body>
<?php
include ("functions.php");
if ($_SESSION['ID'] != "AdmiN")
{
    header("location:index.php?result=Forbidden");
}
else
{
    if (isset($_GET['IDq']))
    {
        $idq = $_GET['IDq'];
        $flag = true;
        $req = "select * from question where id='".$idq."';";
        connecttoFAQ();
        $ressource = mysql_query($req) or die('Erreur : '.mysql_error());
        if ($ressource == false)
        {
            $flag = false;
        }
        else
        {
            $questionarray = mysql_fetch_assoc($ressource);
        }
    }
}
?>
<form action="edit_question.php" method="POST" name="editor" id="editor">
<table class="table_thick_margin_blue">
<tr>
	<td>Question :<br /> <input type="text" size="55" name="titrequestion" id="titrequestion" value="<?php
if (isset($_GET['IDq']) and ($flag != false))
{
    echo $questionarray['titre'];
}
?>" /></td>
</tr>
<tr>
	<td align="left">Description :<br /><textarea name="description" id="description" rows="10" cols="60" ><?php
if (isset($_GET['IDq']) and ($flag != false))
{
    echo $questionarray['description'];
}
?></textarea></td>
	<td valign="top"><?php
if (isset($_GET['IDq']) and ($flag != false))
{
    connecttoFAQ();
    mysql_query('SET NAMES UTF8');
    $req1 = "SELECT * from niveau1 where id='".$questionarray['niveau1']."';";
    $req2 = "SELECT * from niveau2 where id='".$questionarray['niveau2']."';";
    $req3 = "SELECT * from niveau3 where id='".$questionarray['niveau3']."';";
    $ressource1 = mysql_query($req1) or die('Erreur : '.mysql_error());
    $ressource2 = mysql_query($req2) or die('Erreur : '.mysql_error());
    $ressource3 = mysql_query($req3) or die('Erreur : '.mysql_error());
    $niveau1array = mysql_fetch_assoc($ressource1);
    $niveau2array = mysql_fetch_assoc($ressource2);
    $niveau3array = mysql_fetch_assoc($ressource3);
    mysql_close($_SESSION['connexion_base']);
    echo "<div class='warning'>Cette question est déjà classée dans ".$niveau1array['id'].
        "-".$niveau1array['titre']." > ".$niveau2array['id']."-".$niveau2array['titre'].
        " > ".$niveau3array['id']."-".$niveau3array['titre'].".</div><br/>";
    echo "Vous pouvez la reclasser en remplissant les combobox situées juste en dessous.<br/>";
}
if (!empty($_GET['result']))
{
    switch ($_GET['result'])
    {
        case 'NiveauVide':
            $erreur = "Veuillez renseigner où classer cette question.";
            break;
        case 'ChampVide':
            $erreur = "Veuillez renseigner tous les champs.";
            break;
    }
    echo ("<div class='error'>");
    if (isset($erreur))
    {
        echo ($erreur);
    }
    echo ("</div>");
}
?>
Choisissez la catégorie et les sous-catégories où classer cette question :<br/>
<?php
connecttoFAQ();
$req = "SELECT * FROM niveau1 ORDER BY id";
mysql_query('SET NAMES UTF8');
$res = mysql_query($req) or die('Erreur');
echo '<div align="center" id="combo1"><select name="niveau1" onclick=\'requeteajax("combo2","traitercombo2.php",this.value);\'>';
echo '<option value="default">----Choisissez----</option>';
while ($jeuenr = mysql_fetch_assoc($res))
{
    echo '<option value="'.$jeuenr['id'].'">'.$jeuenr['id'].' - '.$jeuenr['titre'].
        '</option>';
}
echo '</select></div>';
?>
	<!-- c'est dans ces div que les combos  2 et 3vont apparraitre après selection de la combo1 -->
	<div id="combo2" align="center"></div>
	<div id="combo3" align="center"></div>
	</td>
</tr>
<tr>
	<td>Solution :<br /><textarea name="reponse" id="reponse" rows="10" cols="30" style="width:30%"><?php
if (isset($_GET['IDq']) and ($flag != false))
{
    echo $questionarray['reponse'];
}
?></textarea></td>
	<td align="left" valign="top"><input type="hidden" name="view" id="view" value="1"/>infos :<br /> Question <input type="text" id="idquestion" name="idquestion" readonly="readonly" value="<?php
if (isset($_GET['IDq']) and ($flag != false))
{
    echo $questionarray['id'];
}
else
{
    $numq = date('YmdHis', time());
    echo $numq;
}
?>"/><br /> crée le <input type="text" name="datecreation" id="datecreation" readonly="readonly" value="<?php
if (isset($_GET['IDq']) and ($flag != false))
{
    echo $questionarray['date_creation'];
}
else
{
    $day = date('d-m-Y', time());
    echo $day;
}
?>"/><br /></td>
</tr>
</table>
	</form>
<input type="button" name="enregistrer" id="enregistrer" value="Enregistrer" onclick="javascript:parent.opener.location.reload();window.close();document.getElementById('view').value=0;document.forms['editor'].submit();" /><br /><input type="button" name="apercus" id="apercus" value="Aperçus" onclick="document.getElementById('view').value=1;document.forms['editor'].submit();"/>
</body>	


Merci de votre lecture.
A voir également:

5 réponses

jona303 Messages postés 369 Date d'inscription dimanche 25 janvier 2009 Statut Membre Dernière intervention 28 janvier 2013 28
12 mars 2009 à 10:35
Salut,

ça ne viendrait pas de la?
<input type="button" name="enregistrer" id="enregistrer" value="Enregistrer" onclick="javascript:parent.opener.location.reload();window.close();document.getElementById('view').value=0;document.forms['editor'].submit();"

Je suis pas une super bete de js, mais moi j'utilise betement :
document.editor.submit();

ou peut etre parce que tu fermes window avant d'envoyer le form?
0
guichoux Messages postés 6 Date d'inscription jeudi 12 mars 2009 Statut Membre Dernière intervention 12 mars 2009
12 mars 2009 à 10:44
Ah mince j'ai envoyé une vieille version de mon code ... j'ai mis l'envoi du form avant de fermer la fenetre et j'ai fais exactement le même code js --> document.editor.submit();
Je vois vraiment pas d'où vient ce satané problème.
0
jona303 Messages postés 369 Date d'inscription dimanche 25 janvier 2009 Statut Membre Dernière intervention 28 janvier 2013 28
12 mars 2009 à 10:51
t'as essayé de mettre un bete <input type="submit"/> dans la balise form, juste par curiosité pour voir si ça fonctionne,..
si oui, c'est que ça vient du js à coup sur, mais j'avoue ne pas très bien comprendre ou ça peut foirer..
peut etre l'ordre des commandes js tout de même.
0
guichoux Messages postés 6 Date d'inscription jeudi 12 mars 2009 Statut Membre Dernière intervention 12 mars 2009
12 mars 2009 à 11:03
oui j'ai essayé, je vais changer l'ordre. Le plus fun c'est qu'en modifiant un peu mon code, j'ai réussi a faire passer une variable de plus (et c'est pas trop tôt !!) :)
Il m'en reste plus que deux ... Mais je comprends vraiment pas car les autres passent, si elles passent c'est que forcemment mon code n'est pas vraiment faux.
Il y a des pros du php qui pourraient m'éclairer?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
guichoux Messages postés 6 Date d'inscription jeudi 12 mars 2009 Statut Membre Dernière intervention 12 mars 2009
12 mars 2009 à 12:15
Bon ben en fait j'ai quasiment fini de régler le problème ... La solution? changer les name et id. Et surtout, la page appelée pour traiter comportait un code js faux!
Enfin bon je pige pas car mes $_POST étaient mis dans des variable bien loin avant le js ....
0

Discussions similaires