Probleme textarea dans formulaire

Résolu/Fermé
moucaaa Messages postés 12 Date d'inscription samedi 10 janvier 2009 Statut Membre Dernière intervention 16 décembre 2013 - 20 avril 2011 à 21:50
mpmp93 Messages postés 6648 Date d'inscription mercredi 13 avril 2011 Statut Membre Dernière intervention 28 septembre 2015 - 22 avril 2011 à 11:44
Bonjour, je suis entrain de realiser un questionnaire dynamique en php/mysql

dans l'interface d'ajout j'ai un probleme , je veut recuperer les possibilités de reponse dans un champs textarea chaque ligne contient une possibilté et après je veut que ses valeurs s'enregistre dans la table reponse chaqu'une dans un enregistrement mais j'ai pas trouvé la solution .

c'est la pge de formulaire d'ajout:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><head>
<link type="text/css" rel="StyleSheet" href="admin/style.css">
 
	<title>
	Questionnaire E-Learning
	</title>
<script type="text/javascript">
	function THEFUNCTION(i) {
		var choix1 = document.getElementById('choix1');
		switch(i) {
				case 0 : 	choix1.style.display = '';
							choix2.style.display = 'none';
				break;
				case 1 :	choix2.style.display = '';
							choix1.style.display = 'none';
							break;
				default: 	choix1.style.display = 'none'; 
							choix2.style.display = 'none';
							break;
 
	}
	}
</script>
 
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
</head>
<body bgcolor='#0099CC' link='#000080' vlink='#000080' alink='#FFFF00'><font face='verdana' size='2'>
<table width='95%' align='center' style='border-collapse: collapse' bordercolor='#0A47FF' bgcolor='#E5F9FF' border='1' cellspacing='0'>
	<tr>
		<td>
<form action="traitementadd.php" name="form_add" method="post" class="formulaire"><!-- START THE SURVEY -->
	<table width='100%' align='center' cellspacing='0' cellpadding='2'>
 
		<tr>
			<td align='center' bgcolor='#E5F9FF'><font size='5' color='#0A47FF'><b>Questionnaire Evaluation de la Qualité du Processus d'Apprentissage d'un cours en ligne</b></font><br />
				<font size='2' color='#111111'>Software Engineering Group<br>Departement informatique<br> Institut Superieur de gestion 
			</td>
 
		</tr>
		<tr>
			<td align='center' bgcolor='#0099CC' valign='middle'>
				
			</td>
		</tr>
	</table>
<!-- START THE GROUP -->
	<table width='99%' align='center' border='0' bgcolor='#FFFFFF'>
		<tr>
			<td align='center'>
				<font face='verdana' size='3' color='#0A47FF'><b><br />La satisfaction de l'apprenant </b></font>
 
 
 
<!-- PRESENT THE QUESTIONS -->
	<!-- NEW QUESTION -->
				<div id='question123'>
			  <table width='75%' align='center' border='1' style='border-collapse: collapse' bordercolor='#0099CC' bgcolor='white'>
 
						<tr>
 
							<td align='center'>
 
								<table width='100%' cellspacing='0'>
 
									<tr>
 
										<td align='center' bgcolor='#E5F9FF'>
 
											<font size='2' color='#0033CC'><b><label for='5X21X123'>Ajouter une question<b></label></b></td>
 
									</tr>
 
 
									<tr>
 
									  <td align='center'>
 
										<table class='question'>
				
      <td align="center" class="answertext">Categorie :</td>
      <td>
       <select name="categories" id="categories" size="1">
                  <option name="" value="0"></option>
<?php
include("connect.php");
								mysql_query("SET NAMES UTF8"); 
$sql="SELECT *
FROM categorie";
$req=mysql_query($sql)
or die('Erreur SQL !
'.$sql.'
'.mysql_error()); 
while($resultat=mysql_fetch_assoc($req))
{
	$id_categorie=$resultat['id_categorie'];
	$libelle_cat=$resultat['libelle_cat'];
echo '<option value="'.$id_categorie.'">'.$libelle_cat; }
?>
</option>
</select>    <br />    </td>
    </tr>
    <tr>
      <td align="center" class="answertext">Libellé question :</td>
      <td><input type="text" id="libelle_quest" name="libelle_quest"/>
    <br />
    </td>
    </tr>
     <tr>
      <td align="center" class="answertext">Name:</td>
      <td><input type="text" id="Name" name="Name"/>
    <br />
    </td>
    </tr>
      <tr>
      <td align="center" class="answertext">Réponse :</td>
      <td><select name="type" id="type" onChange="THEFUNCTION(this.selectedIndex);">
<option value="Multichoix">Multichoix</option>
<option value="choix unique">Choix unique</option>
<option value="champs texte">Champs texte</option>
</select>    <br />
 
    </td>
    </tr>
    <tr>
      <td align="center" class="answertext">Réponse :</td>
      <td><div style="display:none;" id="choix1">
	<label for="Multichoix">Multichoix: </label>
	<textarea name="Multichoix" id="Multichoix" ></textarea>
</div>
<div style="display:none;" id="choix2">
	<label for="choix_unique">choix unique:</label>
	<textarea name="choix_unique" id="choix_unique"></textarea>
</div>
 
    </td>
    </tr>
					<td>&nbsp;</td>
				</tr>
			</table></td>
 
									</tr>
 
									<tr>
 
										<td align='center' bgcolor='#E5F9FF'>
 
											<font size='1'></font>
 
										</td>
 
									</tr>
 
								</table>
 
							</td>
 
						</tr>
 
					</table>
 
					<table>
 
						<tr>
 
							<td height='1'></td>
 
						</tr>
 
					</table>
				</div>
     
<!-- END THE GROUP -->
			</td>
		  </tr>
		</table>
 
		<table><tr><td height='2'></td></tr></table>
 
 
<!-- PRESENT THE NAVIGATOR -->
		<table width='100%' align='center' bgcolor='#E5F9FF'>
		 <tr>
		  <td width="50%" height="40" align='center' valign='middle'><input class='submit' type='submit' value=' Ajouter' name='move2' accesskey="s"/></td>
		 </tr>
		</table>
<!-- group2.php -->
 
</form>
		</td>
	</tr>
</table>
<table width='95%' align='center' style='border-collapse: collapse' bordercolor='#333333' bgcolor='#0099CC' border='0' cellspacing='0'>
 <tr>
<!--  <td align='right'><font size='2'>  -->
<!--    Adopted from <a href='http://www.phpsurveyor.org/' target='_blank'>PHPSurveyor</a>  -->
<!--  </td>   -->
 </tr>
</table>
</body>
 
</html>


Le code de traitement de formulaire
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Ajout d'une question</title>
</head>
<body>
<?php
include("connect.php");
								mysql_query("SET NAMES UTF8"); 
$id_categorie=$_POST["categories"];
$libelle_quest=$_POST["libelle_quest"];
$type=$_POST["type"];
$sql1 = "INSERT INTO question 
   (id_categorie,libelle_quest,type)
VALUES 
   ('$id_categorie','$libelle_quest','$type') ;";
   mysql_query($sql1) or die('Erreur SQL !
'.$sql1.'
'.mysql_error());
   if(mysql_query($sql1) )
$id_question = mysql_insert_id(); 
   if($type=="Multichoix")
{
	$reponse=$_POST["Multichoix"];
	explode("/n",$reponse);
}
if($type=="choix unique"){
	$reponse=$_POST["choix_unique"];
		explode("/n",$reponse);
}
echo $reponse;
 
 
$sql2 = "INSERT INTO reponse 
   (libelle_rep,id_question)
VALUES 
   ('$reponse','$id_question') ;";
   mysql_query($sql2) or die('Erreur SQL !
'.$sql2.'
'.mysql_error());
   
header('location:questions.php');
 
?>
</body>
</html>


SVP ,pouvez vous m'aidez ET MERCI

2 réponses

Bonjour,

Déja une erreur grossière ici:

header('location:questions.php');


Cette ligne doit être invoquée AVANT TOUTE EMISSION DE CARACTERE(S)!!!!

Or vous avez des <html> et toute la suite. Ca ne fonctionnera pas.

Cordialement
0
moucaaa Messages postés 12 Date d'inscription samedi 10 janvier 2009 Statut Membre Dernière intervention 16 décembre 2013
Modifié par moucaaa le 21/04/2011 à 00:12
Bon pour j'ai corrigé l'erreur ,mais pour l(ajout des questions ça fonctionne bien et pour la recuperation des reponse ça fonction mais je veut que chaque ligne de texte area s'enregistre dans une ligne dans ma base de données
0
mpmp93 Messages postés 6648 Date d'inscription mercredi 13 avril 2011 Statut Membre Dernière intervention 28 septembre 2015 1 339
21 avril 2011 à 12:00
Bonjour,

Concernant: 'chaque ligne de texte area s'enregistre dans une ligne dans ma base de données'....

Je trouve ceci peu pertinent comme démarche. Stockez votre texte dans un seul champ. En sortie, vous faites un str-replace des \r par rien et vous faites un explode en prenant comme délimiteur le pseudo-caractère \n

A+
0
moucaaa Messages postés 12 Date d'inscription samedi 10 janvier 2009 Statut Membre Dernière intervention 16 décembre 2013
21 avril 2011 à 17:44
merci pour votre reponse j'ai trouvé la solution en faisant
$reponse=$_POST["choix_unique"];
$r1=explode("\r\n",$reponse);
et puis j'ai fait un INSERT INTO chaque case du tableau dans un enregistrement
0
mpmp93 Messages postés 6648 Date d'inscription mercredi 13 avril 2011 Statut Membre Dernière intervention 28 septembre 2015 1 339
22 avril 2011 à 11:44
Bonjour,

NON, il ne faut pas faire un:

$r1=explode("\r\n",$reponse);

car selon les systèmes, le retour à la ligne est un \n (sous Linux) ou un \r\n (sous Windows...).

Avec un Str_replace des \r par rien, vous ne gardez que les \n et faites ensuite un explode sur \n.

Ainsi, que le visiteur soit sous Linux ou Windows, le script marchera toujours....
0