Undefined offset:
Résolu
tintin
-
Utilisateur anonyme -
Utilisateur anonyme -
Bonjour,
Bonjour,
Suite à une récupération d'un formulaire par le code ci-dessous
<?php
$Form = @$_POST['listOfItems'];
$tableau = explode(";", $Form);
$occurences = count($tableau);
for ($i = 0 ; $i < count($tableau); $i++)
{
$arrayChaine=explode("|",$tableau[$i]);
$quest[2*$i] = $arrayChaine[$i];
$rep[2*$i+1] = $arrayChaine[$i+1];
}
?>
J'obtiens le message d'erreur suivant
Notice: Undefined offset: 2 in C:\Program Files (x86)\EasyPHP-5.3.8.0\www\Site\save.php on line 9
Notice: Undefined offset: 2 in C:\Program Files (x86)\EasyPHP-5.3.8.0\www\Site\save.php on line 8
Notice: Undefined offset: 3 in C:\Program Files (x86)\EasyPHP-5.3.8.0\www\Site\save.php on line 9
Notice: Undefined offset: 3 in C:\Program Files (x86)\EasyPHP-5.3.8.0\www\Site\save.php on line 8
Notice: Undefined offset: 4 in C:\Program Files (x86)\EasyPHP-5.3.8.0\www\Site\save.php on line 9
Notice: Undefined offset: 4 in C:\Program Files (x86)\EasyPHP-5.3.8.0\www\Site\save.php on line 8
Je pense que mon erreur vient des 2 lignes suivantes mais je ne comprends pas pourquoi.
J'ajoute qu'un affichage de $Form me donne quest1|rep2;quest3|rep4;quest2|rep5;quest4|rep1
J'ajoute que je veux récupérer dans des variables les contenus de chaque question et de chaque réponse.
Merci d'avance aux contributeurs.
Bonjour,
Suite à une récupération d'un formulaire par le code ci-dessous
<?php
$Form = @$_POST['listOfItems'];
$tableau = explode(";", $Form);
$occurences = count($tableau);
for ($i = 0 ; $i < count($tableau); $i++)
{
$arrayChaine=explode("|",$tableau[$i]);
$quest[2*$i] = $arrayChaine[$i];
$rep[2*$i+1] = $arrayChaine[$i+1];
}
?>
J'obtiens le message d'erreur suivant
Notice: Undefined offset: 2 in C:\Program Files (x86)\EasyPHP-5.3.8.0\www\Site\save.php on line 9
Notice: Undefined offset: 2 in C:\Program Files (x86)\EasyPHP-5.3.8.0\www\Site\save.php on line 8
Notice: Undefined offset: 3 in C:\Program Files (x86)\EasyPHP-5.3.8.0\www\Site\save.php on line 9
Notice: Undefined offset: 3 in C:\Program Files (x86)\EasyPHP-5.3.8.0\www\Site\save.php on line 8
Notice: Undefined offset: 4 in C:\Program Files (x86)\EasyPHP-5.3.8.0\www\Site\save.php on line 9
Notice: Undefined offset: 4 in C:\Program Files (x86)\EasyPHP-5.3.8.0\www\Site\save.php on line 8
Je pense que mon erreur vient des 2 lignes suivantes mais je ne comprends pas pourquoi.
J'ajoute qu'un affichage de $Form me donne quest1|rep2;quest3|rep4;quest2|rep5;quest4|rep1
J'ajoute que je veux récupérer dans des variables les contenus de chaque question et de chaque réponse.
Merci d'avance aux contributeurs.
A voir également:
- Offset path illustrator français
- Lire le coran en français pdf - Télécharger - Histoire & Religion
- Dernière version ccleaner gratuit français - Télécharger - Nettoyage
- Adobe illustrator - Télécharger - Dessin & Illustration
- Télécharger adobe reader 9.1 français gratuit - Télécharger - PDF
- Fixwin 11 en français - Télécharger - Divers Utilitaires
4 réponses
Bonjour
Ça me semble logique.
À chaque boucle, quand tu exploses $tableau[$i], tu récupères un tableau à deux éléments, d'indices 0 et 1.
Donc
Ça me semble logique.
À chaque boucle, quand tu exploses $tableau[$i], tu récupères un tableau à deux éléments, d'indices 0 et 1.
Donc
$quest[2*$i] = $arrayChaine[0]; $rep[2*$i+1] = $arrayChaine[1];
Bonjour,
Etant assez débutant en php, je pensais que ma variable $i s'incrémentant, j'aurais
C'est en fait ce que je souhaiterais obtenir.
Mais dans ce cas, comment faire ?
Encore merci.
Etant assez débutant en php, je pensais que ma variable $i s'incrémentant, j'aurais
$quest0 = ma 1ère question, $rep1 = ma 1ère réponse, $quest2 = ma 2ème question, $rep3 = ma 2ème réponse, $quest4 = ma 3ème question, $rep5 = ma 3ème réponse, etc.
C'est en fait ce que je souhaiterais obtenir.
Mais dans ce cas, comment faire ?
Encore merci.
C'est bien ce que tu obtiendras (sauf que tu as oublié les [] )
Mais par contre, à chaque boucle, tu fais $arrayChaine=explode("|",$tableau[$i]);.
$arrayChaine est donc re-créé à chaque fois. Comme il y a deux éléments, ces éléments ont les indices 0 et 1. Mais je ne parle ici que des indices de $arrayChaine ; pour $quest et $rep, ça se passe bien comme tu le dis. Et la correction, je te l'ai donnée dans mon message précédent.
Mais quel est l'intérêt de n'utiliser que les indices pairs dans $quest et les indices impairs dans $rep ?
Ça ne te semblerait pas plus logique d'avoir le même indice pour la question et la réponse qui va avec ?
Ça donnerait :
Mais par contre, à chaque boucle, tu fais $arrayChaine=explode("|",$tableau[$i]);.
$arrayChaine est donc re-créé à chaque fois. Comme il y a deux éléments, ces éléments ont les indices 0 et 1. Mais je ne parle ici que des indices de $arrayChaine ; pour $quest et $rep, ça se passe bien comme tu le dis. Et la correction, je te l'ai donnée dans mon message précédent.
Mais quel est l'intérêt de n'utiliser que les indices pairs dans $quest et les indices impairs dans $rep ?
Ça ne te semblerait pas plus logique d'avoir le même indice pour la question et la réponse qui va avec ?
Ça donnerait :
$quest=array(); $rep=array(); for ($i = 0 ; $i < count($tableau); $i++) { $arrayChaine=explode("|",$tableau[$i]); $quest[] = $arrayChaine[0]; // sans indice, on ajoute à la fin du tableau $rep[] = $arrayChaine[1]; }