[PHP] Recuperer des variables
Fermé
ehar
Messages postés
6
Date d'inscription
jeudi 21 septembre 2006
Statut
Membre
Dernière intervention
11 janvier 2007
-
17 oct. 2006 à 10:34
thib - 12 mars 2009 à 21:20
thib - 12 mars 2009 à 21:20
A voir également:
- [PHP] Recuperer des variables
- Recuperer message whatsapp supprimé - Guide
- Recuperer video youtube - Guide
- Récupérer mon compte facebook désactivé - Guide
- Comment récupérer un compte facebook piraté - Guide
- Impossible de récupérer mon compte gmail - Guide
12 réponses
kij_82
Messages postés
4089
Date d'inscription
jeudi 7 avril 2005
Statut
Contributeur
Dernière intervention
30 septembre 2013
857
17 oct. 2006 à 17:24
17 oct. 2006 à 17:24
J'ai penser à un truc.. bon solution de port tu me dira, mais j'y ai pas réfléchi plus que ca.
Voilà ce que je te propose :
Tu as ton formulaire avec X input dont les noms sont variables.
Ce que tu peux faire tout simplement, c'est créer un tableau de ces noms d'input, tableau que dans lequel tu insere tes valeurs au fur et à mesure que tu pose tes input (donc dans ta boucle, j'imagine).
Puis, à la fin de ton formulaire, tu met un champ caché prenant pour valeur ton tableau rempli précédemment.
Tu met ton formulaire en POST, et ainsi, au tout début de ta page suivante (celle appellée par le formulaire), tu récupère ton tableau de valeur par POST.
Tu as donc maintenant possibilité de connaitre les noms de tes inputs créés dynamiquement :)
Afin de pouvoir extraire les valeurs passées en POST à ces input, car il a bien falloir les extraires pour les traiter, il te faut ensuite faire une fonction qui t'extrait les valeurs et les mets dans un tableau.
C'est à dire que tu fais un boucle sur ton tableau récupéré (celui des noms d'input) et tu boucle dessus. Pour chaque valeur récupérée (nom de l'input), tu vas extraire la valeur passée dans $_POST["nom_courant_de_l'input"], valeur que tu met immédiatement dans un deuxieme tableau, que tu rempli donc au fur et à mesure de ta boucle (comme dans ta page de formulaire lors de la création des input, sauf que là c'est lors de la récupération).
Au final, tu as un tablea avec toutes les valeurs de tes inputs.
Pour ce qui est du traitement apres... et bien ca dépend ce que tu veux en faire, mais je te laisse faire ;)
Bon courage :)
Voilà ce que je te propose :
Tu as ton formulaire avec X input dont les noms sont variables.
Ce que tu peux faire tout simplement, c'est créer un tableau de ces noms d'input, tableau que dans lequel tu insere tes valeurs au fur et à mesure que tu pose tes input (donc dans ta boucle, j'imagine).
Puis, à la fin de ton formulaire, tu met un champ caché prenant pour valeur ton tableau rempli précédemment.
Tu met ton formulaire en POST, et ainsi, au tout début de ta page suivante (celle appellée par le formulaire), tu récupère ton tableau de valeur par POST.
Tu as donc maintenant possibilité de connaitre les noms de tes inputs créés dynamiquement :)
Afin de pouvoir extraire les valeurs passées en POST à ces input, car il a bien falloir les extraires pour les traiter, il te faut ensuite faire une fonction qui t'extrait les valeurs et les mets dans un tableau.
C'est à dire que tu fais un boucle sur ton tableau récupéré (celui des noms d'input) et tu boucle dessus. Pour chaque valeur récupérée (nom de l'input), tu vas extraire la valeur passée dans $_POST["nom_courant_de_l'input"], valeur que tu met immédiatement dans un deuxieme tableau, que tu rempli donc au fur et à mesure de ta boucle (comme dans ta page de formulaire lors de la création des input, sauf que là c'est lors de la récupération).
Au final, tu as un tablea avec toutes les valeurs de tes inputs.
Pour ce qui est du traitement apres... et bien ca dépend ce que tu veux en faire, mais je te laisse faire ;)
Bon courage :)
Bonjour,
Si c'est juste pour savoir combien de champ input ou autre que tu as crée dynamiquement, pas besoin d'envoyer un tableau qui pourrait se retrouver trés lourd si tu as 1000 input crée ou plus.
Il suffit simplement de crér une variable integer $nombre_input et de l'incrémenter ($nombre_input++;) à chaque fois que tu crée un nouvel input, après tu envoie cette variable en hidden avec ton formulaire.
Quand tu la récupére tu sais combien de champs input que tu as et tu peux accéder à tes champs avec leur nom générique (je suppose que tu n'as pas mis des noms random, mais du genre : name="nom_input_1" ... ) donc ici le nom générique est "nom_input" et en ajoutant le numéro de l'input auquel tu veux accéder.
Le mieux c'est d'utiliser directement la variable integer qui te sert a générer les noms de tes champs input ...
exemple :
$nom_input = 'nom_generique_input';
for ($nombre_input = 0;$nombre_input < $nombre_champ_dans_BDD; $nombre_input++)
{
echo '<input name="'.$nom_input.$nombre_input.'" type="ton_type">';
}
echo '
<input type="hidden" name="nom_input" value="'.$nom_input.'">
<inputtype="hidden" name="nombre_input" value="'.$nombre_input.'"
<input type="submit" value="actualizar">';
et dans le script de gestion
if(isset($_post['nom_input']) && isset($_post['nombre_input']))
{
$nom_input=$_post['nom_input'];
$nombre_input=$_post['nombre_input'];
echo 'mon dernier enregistrement est : '.$_post[$nom_input.$nombre_input];
}
Voilà j'suis pas sur pourla concaténation des variables dans le tableau $_post mais bon sinon il suffit de changer la maniére de l'écrire.
Chao.
Si c'est juste pour savoir combien de champ input ou autre que tu as crée dynamiquement, pas besoin d'envoyer un tableau qui pourrait se retrouver trés lourd si tu as 1000 input crée ou plus.
Il suffit simplement de crér une variable integer $nombre_input et de l'incrémenter ($nombre_input++;) à chaque fois que tu crée un nouvel input, après tu envoie cette variable en hidden avec ton formulaire.
Quand tu la récupére tu sais combien de champs input que tu as et tu peux accéder à tes champs avec leur nom générique (je suppose que tu n'as pas mis des noms random, mais du genre : name="nom_input_1" ... ) donc ici le nom générique est "nom_input" et en ajoutant le numéro de l'input auquel tu veux accéder.
Le mieux c'est d'utiliser directement la variable integer qui te sert a générer les noms de tes champs input ...
exemple :
$nom_input = 'nom_generique_input';
for ($nombre_input = 0;$nombre_input < $nombre_champ_dans_BDD; $nombre_input++)
{
echo '<input name="'.$nom_input.$nombre_input.'" type="ton_type">';
}
echo '
<input type="hidden" name="nom_input" value="'.$nom_input.'">
<inputtype="hidden" name="nombre_input" value="'.$nombre_input.'"
<input type="submit" value="actualizar">';
et dans le script de gestion
if(isset($_post['nom_input']) && isset($_post['nombre_input']))
{
$nom_input=$_post['nom_input'];
$nombre_input=$_post['nombre_input'];
echo 'mon dernier enregistrement est : '.$_post[$nom_input.$nombre_input];
}
Voilà j'suis pas sur pourla concaténation des variables dans le tableau $_post mais bon sinon il suffit de changer la maniére de l'écrire.
Chao.
kij_82
Messages postés
4089
Date d'inscription
jeudi 7 avril 2005
Statut
Contributeur
Dernière intervention
30 septembre 2013
857
9 févr. 2009 à 09:44
9 févr. 2009 à 09:44
Effectivement ça marchera tout aussi bien en étant moins lourd.
Bonjour,
Votre solution pourrai résoudre mon problème????
J'ai actuellement un formulaire qui dois afficher par exemple 3 utilisateurs et je dois mettre sur chaque utilisateur leur état via un menu déroulant par exemple "présent" "absent". Et quand j'appuie sur le bouton "submit" il doit m'ajouter autant de présence que d'utilisateur mais c'est pas le cas il m'ajoute que un état celui de la dernière personne du listing.
Voici le code du formulaire:
crea.php
Votre solution pourrai résoudre mon problème????
J'ai actuellement un formulaire qui dois afficher par exemple 3 utilisateurs et je dois mettre sur chaque utilisateur leur état via un menu déroulant par exemple "présent" "absent". Et quand j'appuie sur le bouton "submit" il doit m'ajouter autant de présence que d'utilisateur mais c'est pas le cas il m'ajoute que un état celui de la dernière personne du listing.
Voici le code du formulaire:
<?php $query_users = "SELECT * FROM agent, service, utilisateurs WHERE agent.nservice = service.nservice = utilisateurs.nservice AND lservice = 'informatique'"; // Tri la table agent sur le champs Nservice $users = mysql_query($query_users, $dbprotect) or die(mysql_error()); while( $result = mysql_fetch_object( $users ) ) { ?> <form action="crea.php" method="post"> <table width="495" border="1"> <tr> <td width="109">Entrez la Date:</td> <td width="215"> <input type="text" name="date" size="20"></td> </tr> <tr> <td>Agent:</td> <td><input type="text" size="10" name="agent" value="<?php echo ($result->nom);?>"> <select name="etat"> <option>Présent</option> <option>Congès Annuels</option> <option>Congès Exceptionnel</option> <option>Mission</option> <option>Récupération</option> </select></td> </tr> <tr> <td>Chef de service</td> <td><input type="text" size="10" name="login" value="<?php echo ($result->login);?>"></td> </table> <input type="hidden" name="nservice" value="<?php echo ($result->nservice);?>" <?php } ?><br> <input type="submit" value="valider" name="valider"> </form> <?php } // fin de l'affichage conditionnel?>
crea.php
<?php require_once('connexion.php'); ?> <?php if(isset($_POST['valider'])) { $nservice=$_POST['nservice']; $date=$_POST['date']; $agent=$_POST['agent']; $etat=$_POST['etat']; $login=$_POST['login']; $valider=$_POST['valider']; $requete ="INSERT INTO presence (id,nservice,date,agent,etat,login) values ('','$nservice','$date','$agent','$etat','$login')"; mysql_query($requete); mysql_close(); echo "La date à bien été prise en charge pour vos agent"; } else echo "Merci de bien remplir le formulaire"; ?>
kij_82
Messages postés
4089
Date d'inscription
jeudi 7 avril 2005
Statut
Contributeur
Dernière intervention
30 septembre 2013
857
10 févr. 2009 à 11:06
10 févr. 2009 à 11:06
Bonjour,
Effectivement il faut que tu fasse le même genre de chose.
Actuellement, comme tu nomme à chaque fois tes éléments de la même façon dans ta boucle d'affichage (l'input pour la date, la select box pour la présence / non présence / etc), lors de la soumission du formulaire il va se passer la chose suivante :
Le moteur web va récupérer tous les éléments de la page contenu dans ton FORM et les envoyer via le tableau $_POST selon le nom que tu leur as donné, et ce sans ce pré-occupé de savoir si la variable qui a pour nom le nom de l'élément à ajouter existe déjà dans le tableau $_POST ou non. C'est donc pour ça que pour chacune de tes éléments inclus dans ta boucle, tu n'as que la dernière valeur référencée dans ton tableau $_POST lors de la soumission.
Donc une solution est bien d'appliquer la même remarque que pour le problème précédent : nommer individuellement tous tes champs, ce qui passe donc par une concaténation d'un entier (incrémenté) avec le nom des champs.
Exemple:
Voilà pour l'affichage. Maintenant il faut adapter ton traitement, c'est à dire récupérer le nombre d'agent via la variable cachée "numIndice" pour pouvoir boucler sur ce nombre afin de faire ce que tu fais déjà mais sur chaque variable nommée "nom" + indice.
Exemple:
Voilà, ton problème devrait être réglé. Le code que j'ai donné n'a pas été testé, il peut donc y avoir des erreurs de syntaxe / recopie, mais l'idée est là. A toi de corriger s'il y a des petites fautes.
Effectivement il faut que tu fasse le même genre de chose.
Actuellement, comme tu nomme à chaque fois tes éléments de la même façon dans ta boucle d'affichage (l'input pour la date, la select box pour la présence / non présence / etc), lors de la soumission du formulaire il va se passer la chose suivante :
Le moteur web va récupérer tous les éléments de la page contenu dans ton FORM et les envoyer via le tableau $_POST selon le nom que tu leur as donné, et ce sans ce pré-occupé de savoir si la variable qui a pour nom le nom de l'élément à ajouter existe déjà dans le tableau $_POST ou non. C'est donc pour ça que pour chacune de tes éléments inclus dans ta boucle, tu n'as que la dernière valeur référencée dans ton tableau $_POST lors de la soumission.
Donc une solution est bien d'appliquer la même remarque que pour le problème précédent : nommer individuellement tous tes champs, ce qui passe donc par une concaténation d'un entier (incrémenté) avec le nom des champs.
Exemple:
<?php $query_users = "SELECT * FROM agent, service, utilisateurs WHERE agent.nservice = service.nservice = utilisateurs.nservice AND lservice = 'informatique'"; // Tri la table agent sur le champs Nservice $users = mysql_query($query_users, $dbprotect) or die(mysql_error()); $indice = 0; while( $result = mysql_fetch_object( $users ) ) { ?> <form action="crea.php" method="post"> <table width="495" border="1"> <tr> <td width="109">Entrez la Date:</td> <td width="215"> <input type="text" name="date<?php echo $indice; ?>" size="20"></td> </tr> <tr> <td>Agent:</td> <td><input type="text" size="10" name="agent<?php echo $indice; ?>" value="<?php echo ($result->nom);?>"> <select name="etat<?php echo $indice; ?>"> <option>Présent</option> <option>Congès Annuels</option> <option>Congès Exceptionnel</option> <option>Mission</option> <option>Récupération</option> </select></td> </tr> <tr> <td>Chef de service</td> <td><input type="text" size="10" name="login<?php echo $indice; ?>" value="<?php echo ($result->login);?>"></td> </table> <input type="hidden" name="nservice" value="<?php echo ($result->nservice);?>" <?php $indice++; } ?><br> <input type="hidden" name="numIndice" value="<?php echo $indice; ?>"/> <input type="submit" value="valider" name="valider"> </form> <?php } // fin de l'affichage conditionnel?>
Voilà pour l'affichage. Maintenant il faut adapter ton traitement, c'est à dire récupérer le nombre d'agent via la variable cachée "numIndice" pour pouvoir boucler sur ce nombre afin de faire ce que tu fais déjà mais sur chaque variable nommée "nom" + indice.
Exemple:
<?php require_once('connexion.php'); ?> <?php if(isset($_POST['valider'])) { $indice = $_POST['numIndice']; $valider=$_POST['valider']; if ( $indice > 0 ){ for ($i=0; $i < $indice; $i++ ){ $nservice=$_POST['nservice'.$i]; $date=$_POST['date'.$i]; $agent=$_POST['agent'.$i]; $etat=$_POST['etat'.$i]; $login=$_POST['login'.$i]; $requete ="INSERT INTO presence (id,nservice,date,agent,etat,login) values ('','$nservice','$date','$agent','$etat','$login')"; mysql_query($requete); } mysql_close(); echo "La date à bien été prise en charge pour les ".$indice." agent"; } } else echo "Merci de bien remplir le formulaire"; ?>
Voilà, ton problème devrait être réglé. Le code que j'ai donné n'a pas été testé, il peut donc y avoir des erreurs de syntaxe / recopie, mais l'idée est là. A toi de corriger s'il y a des petites fautes.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
C'est encore moi :( j'espère que vous avez passez un bon week end :).
Les modifications que tu as faite marche très bien, mais pour que se soit plus pratique pour l'utilisateur, j'aimerai qu'il y ai que 1 input pour la date et qui l'ajoute pour tous les agent
Voila la modification que j'ai faite et qui marche pas bien sur :x
Une idée?
Les modifications que tu as faite marche très bien, mais pour que se soit plus pratique pour l'utilisateur, j'aimerai qu'il y ai que 1 input pour la date et qui l'ajoute pour tous les agent
Voila la modification que j'ai faite et qui marche pas bien sur :x
<?php $query_users = "SELECT * FROM utilisateurs,agent WHERE utilisateurs.nservice = '1' AND agent.nservice = '1'"; // Tri la table agent sur le champs Nservice $users = mysql_query($query_users, $dbprotect) or die(mysql_error()); $indice = 0; ?> <form action="crea.php" method="post"> Entrez la Date <input type="text" name="date<?php echo $indice;?>"> <?php while( $result = mysql_fetch_object( $users ) ) { ?> <table width="495" border="1"> <tr> <td>Agent:</td> <td><input type="text" size="20" name="agent<?php echo $indice;?>" value="<?php echo ($result->nom);?> <?php echo ($result->prenom);?>"> <select name="etat<?php echo $indice;?>"> <option>Présent</option> <option>Congès Annuels</option> <option>Congès Exceptionnel</option> <option>Mission</option> <option>Récupération</option> </select></td> </tr> <tr> <td>Matricule</td> <td><input type="text" size="10" name="nchrono<?php echo $indice;?>" value="<?php echo ($result->nchrono);?>"></td> </tr> <tr> <td>Chef de service</td> <td><input type="text" size="10" name="login<?php echo $indice;?>" value="<?php echo ($result->login);?>"></td> </tr> </table> <input type="hidden" name="nservice<?php echo $indice;?>" value="<?php echo ($result->nservice);?>" <?php $indice++; } ?> <br> <input type="hidden" name="numIndice" value="<?php echo $indice;?>"/> <input type="submit" value="valider" name="valider"> </form> <a href="consultation.php">Consulter/Modifier</a>
Une idée?
kij_82
Messages postés
4089
Date d'inscription
jeudi 7 avril 2005
Statut
Contributeur
Dernière intervention
30 septembre 2013
857
16 févr. 2009 à 17:25
16 févr. 2009 à 17:25
Bonjour, oui bon we merci.
L'erreur est évidente oui ^^
Puisque pour la date tu n'as qu'un seul champ, il ne faut plus le nommer dynamiquement (aucun intérêt).
Ton formulaire (partie date) devient donc simplement ceci :
La partie en gras étant à définir toi même (il faut que ce soit le même nom dans le formulaire mais aussi dans le traitement lorsque tu récupère la valeur du champ.
Et la partie traitement :
Tu l'ajoute en dehors de ta boucle de traitement puisque la date est commune et avec un nom statique. Tu pense bien à supprimer la réception de la date à l'intérieur de ta boucle (ou simplement la déplacer à l'extérieur puis la modifier)
Normalement ça devrait fonctionner.
L'erreur est évidente oui ^^
Puisque pour la date tu n'as qu'un seul champ, il ne faut plus le nommer dynamiquement (aucun intérêt).
Ton formulaire (partie date) devient donc simplement ceci :
Entrez la Date <input type="text" name="date_amoi">
La partie en gras étant à définir toi même (il faut que ce soit le même nom dans le formulaire mais aussi dans le traitement lorsque tu récupère la valeur du champ.
Et la partie traitement :
$date = $_POST['date_amoi']; for ($i=0; $i < $indice; $i++ ){ $nservice=$_POST['nservice'.$i]; $agent=$_POST['agent'.$i]; $etat=$_POST['etat'.$i]; $login=$_POST['login'.$i];
Tu l'ajoute en dehors de ta boucle de traitement puisque la date est commune et avec un nom statique. Tu pense bien à supprimer la réception de la date à l'intérieur de ta boucle (ou simplement la déplacer à l'extérieur puis la modifier)
Normalement ça devrait fonctionner.
Bonjour,
J'ai un peu le même problème.
Dans mon code, je n'arrive pas à récupérer la valeur de mon input qui a un nom variable.
Voici mon code :
<form method="post">
<p>
<input type="text" value="Nb lignes" size="10" disabled="disabled"/> <input type="text" value="Nb colonnes" size="10" disabled="disabled"/></br>
<input type="text" name="nb_lignes" value="7" size="10"/> <input type="text" name="nb_colonnes" value="14" size="10"/></br></br>
<input type="reset" value="Réinitialiser"/> <input type="submit" value="Valider"/></br></br>
<?php if ((isset($_POST['nb_lignes'])) and (isset($_POST['nb_colonnes'])))
{
for ($i=1; $i <= $_POST['nb_lignes'] ; $i++)
{
for ($j=1; $j <= $_POST['nb_colonnes'] ; $j++)
{
?> <input type="text" size="7" name="<?php echo 'case[' . $i . ';' . $j . ']';?>" value="<?php echo 'case[' . $i . ';' . $j . ']';?>" /><?php
}
?></br><?php
}?>
</br></br>
<input type="text" value="Case_i" size="10" disabled="disabled"/> <input type="text" value="Case_j" size="10" disabled="disabled"/></br>
<input type="text" name="case_i" value="3" size="10"/> <input type="text" name="case_j" value="4"size="10"/></br></br>
<?php if ((isset($_POST['case_i'])) and (isset($_POST['case_j'])))
{
$case_i=$_POST['case_i'];
$case_j=$_POST['case_j'];
echo 'Le contenu de la case[' . $_POST['case_i'] . ';' . $_POST['case_j'] . '] est : ' . $_POST['case[' . $case_i . ';' . $case_j .']'] ;
}
}?>
</p>
</form>
Je suis débutant en PHP, quel est mon erreur pour que la valeur de la case s'affiche ?
Existe-t-il un moyen d'écrire un formulaire entièrement en PHP ?
J'ai un peu le même problème.
Dans mon code, je n'arrive pas à récupérer la valeur de mon input qui a un nom variable.
Voici mon code :
<form method="post">
<p>
<input type="text" value="Nb lignes" size="10" disabled="disabled"/> <input type="text" value="Nb colonnes" size="10" disabled="disabled"/></br>
<input type="text" name="nb_lignes" value="7" size="10"/> <input type="text" name="nb_colonnes" value="14" size="10"/></br></br>
<input type="reset" value="Réinitialiser"/> <input type="submit" value="Valider"/></br></br>
<?php if ((isset($_POST['nb_lignes'])) and (isset($_POST['nb_colonnes'])))
{
for ($i=1; $i <= $_POST['nb_lignes'] ; $i++)
{
for ($j=1; $j <= $_POST['nb_colonnes'] ; $j++)
{
?> <input type="text" size="7" name="<?php echo 'case[' . $i . ';' . $j . ']';?>" value="<?php echo 'case[' . $i . ';' . $j . ']';?>" /><?php
}
?></br><?php
}?>
</br></br>
<input type="text" value="Case_i" size="10" disabled="disabled"/> <input type="text" value="Case_j" size="10" disabled="disabled"/></br>
<input type="text" name="case_i" value="3" size="10"/> <input type="text" name="case_j" value="4"size="10"/></br></br>
<?php if ((isset($_POST['case_i'])) and (isset($_POST['case_j'])))
{
$case_i=$_POST['case_i'];
$case_j=$_POST['case_j'];
echo 'Le contenu de la case[' . $_POST['case_i'] . ';' . $_POST['case_j'] . '] est : ' . $_POST['case[' . $case_i . ';' . $case_j .']'] ;
}
}?>
</p>
</form>
Je suis débutant en PHP, quel est mon erreur pour que la valeur de la case s'affiche ?
Existe-t-il un moyen d'écrire un formulaire entièrement en PHP ?
kij_82
Messages postés
4089
Date d'inscription
jeudi 7 avril 2005
Statut
Contributeur
Dernière intervention
30 septembre 2013
857
6 mars 2009 à 12:01
6 mars 2009 à 12:01
Bonjour,
Je n'ai pas lu en détails ton formulaire mais je pense qu'en spécifiant l'action attachée à ton formulaire (c'est à dire sur quelle page il redirige une fois submité, ça devrait déjà marcher un peu mieux. Il faut donc que tu renseigne la propriété 'action' avec le nom de ton fichier PHP, mettons "toto.php" par exemple, comme ceci :
Pour ce qui est d'écrire un forumulaire entièrement en PHP, tu peux utiliser 'echo' de la manière suivante pour écrire par exemple un input :
Ainsi tu vois que tu peux facilement adapté ceci pour n'importe quel code HTML à écrire sur la page (et donc un formulaire dans ton cas)
Je n'ai pas lu en détails ton formulaire mais je pense qu'en spécifiant l'action attachée à ton formulaire (c'est à dire sur quelle page il redirige une fois submité, ça devrait déjà marcher un peu mieux. Il faut donc que tu renseigne la propriété 'action' avec le nom de ton fichier PHP, mettons "toto.php" par exemple, comme ceci :
<form method="post" action="toto.php"/>
Pour ce qui est d'écrire un forumulaire entièrement en PHP, tu peux utiliser 'echo' de la manière suivante pour écrire par exemple un input :
<?php $maValeur = 3; echo "<input type='texte' name='champ1' value='".$maValeur."'/>"; ?>
Ainsi tu vois que tu peux facilement adapté ceci pour n'importe quel code HTML à écrire sur la page (et donc un formulaire dans ton cas)
Bonsoir,
Merci kij_82 pour ta réponse, mais malheureusement même en spécifiant l'action de mon formulaire cela ne fonctionne pas, je redirige la réponse sur la même page (mon code php est écrit sur toto.php et je redirige la réponse vers toto.php).
Par contre, merci pour l'astuce pour le formulaire en php, par contre celui-ci est toujours visible lorsque l'on désire voir le code source de la page.
Comment faire pour que celui-ci soit totalement invisible, c'est-à-dire complètement en php.
à bientôt
Merci kij_82 pour ta réponse, mais malheureusement même en spécifiant l'action de mon formulaire cela ne fonctionne pas, je redirige la réponse sur la même page (mon code php est écrit sur toto.php et je redirige la réponse vers toto.php).
Par contre, merci pour l'astuce pour le formulaire en php, par contre celui-ci est toujours visible lorsque l'on désire voir le code source de la page.
Comment faire pour que celui-ci soit totalement invisible, c'est-à-dire complètement en php.
à bientôt
Bonjour,
Je ne peux malheureusement pas tester en ce moment mais essaye simplement en rajoutant la fermeture de la balise </form> après le input submit.
Sinon tu n'as qu'un seul formulaire dans ta page, si no n'oublie pas la balise name.
Et pour le formulaire en php, c'est normal qu'il soit toujours visible, le php traite le code que tu lui code et te renvoie du code html qu'il affiche. Donc toi vu que le formulaire est déjà en html et qu'il ne nécessite pas forcément un traitement au php ça ne sert a rien de le mettre en php, laisse le en htmnl directement.
Ça ira plus vite, bon ça se verra pas mais théoriquement sa allège le traitement php (vu que tu lui donne moins de code php a traiter) et donc il renvoie le code html plus vite.
Bon dis où tu en es pour le retour de balise.
chaoop
Je ne peux malheureusement pas tester en ce moment mais essaye simplement en rajoutant la fermeture de la balise </form> après le input submit.
Sinon tu n'as qu'un seul formulaire dans ta page, si no n'oublie pas la balise name.
Et pour le formulaire en php, c'est normal qu'il soit toujours visible, le php traite le code que tu lui code et te renvoie du code html qu'il affiche. Donc toi vu que le formulaire est déjà en html et qu'il ne nécessite pas forcément un traitement au php ça ne sert a rien de le mettre en php, laisse le en htmnl directement.
Ça ira plus vite, bon ça se verra pas mais théoriquement sa allège le traitement php (vu que tu lui donne moins de code php a traiter) et donc il renvoie le code html plus vite.
Bon dis où tu en es pour le retour de balise.
chaoop
Bonsoir,
Désolé, mais ça ne semble pas marcher, voici le code que j'ai testé :
<form method="post">
<p>
<input type="text" name="texte" value="Nb lignes" size="10" disabled="disabled" /> <input type="text" name="texte" value="Nb colonnes" size="10" disabled="disabled"/></br>
<input type="text" name="nb_lignes" value="7" size="10"/> <input type="text" name="nb_colonnes" value="14" size="10"/></br></br>
<?php if ((isset($_POST['nb_lignes'])) and (isset($_POST['nb_colonnes'])))
{
for ($i=1; $i <= $_POST['nb_lignes'] ; $i++)
{
for ($j=1; $j <= $_POST['nb_colonnes'] ; $j++)
{
?> <input type="text" size="7" name="<?php echo 'case[' . $i . ';' . $j . ']';?>" value="<?php echo 'case[' . $i . ';' . $j . ']';?>" /><?php
}
?></br><?php
}?>
</br></br>
<input type="text" name="texte" value="Case_i" size="10" disabled="disabled"/> <input type="text" name="texte" value="Case_j" size="10" disabled="disabled"/></br>
<input type="text" name="case_i" value="3" size="10"/> <input type="text" name="case_j" value="4"size="10"/></br></br>
<?php if ((isset($_POST['case_i'])) and (isset($_POST['case_j'])))
{
$case_i=$_POST['case_i'];
$case_j=$_POST['case_j'];
echo 'Le contenu de la case[' . $_POST['case_i'] . ';' . $_POST['case_j'] . '] est : ' . $_POST['case[' . $case_i . ';' . $case_j .']'] ;
?></br></br><?php
}
}?>
<input type="reset" value="Réinitialiser"/> <input type="submit" value="Valider"/>
</p>
</form>
Mais impossible de savoir ce qu'il y a dans cette case[3;4] ??
Par contre je ne trouve pas mon code très clair avec toutes ces balise php, il n'existe pas de moyen de faire un formulaire entièrement en php (sans echo) de sorte à avoir un code transparent et invisible ?
Merci pour l'aide ;)
Désolé, mais ça ne semble pas marcher, voici le code que j'ai testé :
<form method="post">
<p>
<input type="text" name="texte" value="Nb lignes" size="10" disabled="disabled" /> <input type="text" name="texte" value="Nb colonnes" size="10" disabled="disabled"/></br>
<input type="text" name="nb_lignes" value="7" size="10"/> <input type="text" name="nb_colonnes" value="14" size="10"/></br></br>
<?php if ((isset($_POST['nb_lignes'])) and (isset($_POST['nb_colonnes'])))
{
for ($i=1; $i <= $_POST['nb_lignes'] ; $i++)
{
for ($j=1; $j <= $_POST['nb_colonnes'] ; $j++)
{
?> <input type="text" size="7" name="<?php echo 'case[' . $i . ';' . $j . ']';?>" value="<?php echo 'case[' . $i . ';' . $j . ']';?>" /><?php
}
?></br><?php
}?>
</br></br>
<input type="text" name="texte" value="Case_i" size="10" disabled="disabled"/> <input type="text" name="texte" value="Case_j" size="10" disabled="disabled"/></br>
<input type="text" name="case_i" value="3" size="10"/> <input type="text" name="case_j" value="4"size="10"/></br></br>
<?php if ((isset($_POST['case_i'])) and (isset($_POST['case_j'])))
{
$case_i=$_POST['case_i'];
$case_j=$_POST['case_j'];
echo 'Le contenu de la case[' . $_POST['case_i'] . ';' . $_POST['case_j'] . '] est : ' . $_POST['case[' . $case_i . ';' . $case_j .']'] ;
?></br></br><?php
}
}?>
<input type="reset" value="Réinitialiser"/> <input type="submit" value="Valider"/>
</p>
</form>
Mais impossible de savoir ce qu'il y a dans cette case[3;4] ??
Par contre je ne trouve pas mon code très clair avec toutes ces balise php, il n'existe pas de moyen de faire un formulaire entièrement en php (sans echo) de sorte à avoir un code transparent et invisible ?
Merci pour l'aide ;)