Bonjour,
J'ai lu beaucoup de posts de nombreux forums, qui me donnent des avis contradictoires.
Voici mon pronblème : je remplis un formulaire dans un fichier ajoutligne.php qui envoie ses données dans ajout.php. Je souhaite que l'utilisateur (il s'agit de la session admin, donc c'est très moche) choisisse le nombre de saisies qu'il souhaite effectuer, saisie qu'il fait via des prompts javascript et qui sont insérées dans des input hidden. Le nom de ces input est tout bonnement un nombre partant de 1 jusqu'au nombre de saisies effectuées. Dans ajout.php je souhaite les récupérer en utilisant une variable $i qui va idem de 1 au nombre souhaité à l'intérieur de $_POST. J'obtiens cependant l'erreur Undefined offset.
Je vous poste mon code :
Ajoutligne.php :
<?php
session_start();
?>
<html>
<head>
</head>
<body>
<?php
try
{
if ($_SESSION['from_form'])
{
$pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
$bdd = new PDO('mysql:host=localhost;dbname=panjiia', 'root', '', $pdo_options);
echo "Ajout de lignes au formulaire ".$_SESSION['lib_form'];
?>
<form method="post" action="ajout.php" id="form" name="form">
<p><label for="newline">Saisir le libellé d'une question</label> : <input type="text" id="newline" name="newline" size="100" maxlength="200">
<br/><label for="type">Type de question</label> :
<select name="type" id="type">
<option>Radio
<option>CheckBox
<option>Liste
<option>Texte
</select>
<br/><label for="nombre">Nombre d'options possibles (sauf texte)</label> : <input type="text" id="nombre" name="nombre">
<br/><input type="button" value="Valider puis ajouter" id="ok_add">
<input type="button" value="Valider puis terminer" id="ok_end">
<script type="text/javascript">
var add = document.getElementById('ok_add');
var end = document.getElementById('ok_end');
var form = document.getElementById('form');
end.onclick = function ()
{
var nombre = document.getElementById('nombre').value;
var limite = parseInt(nombre);
var i = 1;
while (i <= limite)
{
var reponse = document.createElement('input');
reponse.type = 'hidden';
var indice = i+'';
reponse.name = indice;
reponse.value = prompt('Saisir une réponse :');
i++;
}
form.submit();
}
</script>
</form>
<?php
}
}
catch (exception $e)
{
die('Erreur : '.$e->getmessage());
}
?>
</body>
</html>
Ajout.php :
<?php
session_start();
$nombre = intval($_POST['nombre']);
for ($i = 1; $i <= $nombre; $i++)
{
echo $_POST[$i];
}
?>
Voilà, j'ai lu que c'était possible, mais aussi que ça ne l'était pas.
Merci d'avance pour vos réponses.
