Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Je cherche une solution (Formulaire PHP) ?

14 réponses
Avatar
Otto Haldi
J'ai un formulaire assez complexe que j'affiche avec un
simple echo. Voir extrait ci-dessous.

Je dois ajouter (env. au milieu du formulaire) un champ
sélection qui peut changer selon une table.

Je ne trouve pas comment inclure cette boucle while au
milieu de mon formulaire.

J'ai essayé la méthode suivante:

echo "<form partie1" puis ma boucle php puis le reste du
formulaire echo" partie2" mais cela ne fonctionne pas.

Quelqu'un peut-t'il seulement me donner une piste pour
résoudre ce problème.

Il y a la possibilité de faire un echo pour chaques lignes,
mais je trouve cela assz lourd.

Merci d'avance pour tous renseignements.

Otto



echo "<form method='post' action='$PHP_SELF'>

<table border='0' width='66' cellspacing='0'
cellpadding='0' height='277'>
..
<td width='190'><input type='text' name='politesse'
value='$POLITESSE' size='32'></td>
<td width='190'><input type='text' name='nom' value='$NOM'
size='32'></td>
..
env. 100 lignes
..

</table>

<p><input type='submit' name=mode value='Enregistrer'>
<input type='submit' name=mode value='Effacer'>
<input type=hidden name=last_id value='$id'>

</form>";

10 réponses

1 2
Avatar
Jean-Marc Molina
Bonjour

Ne pas utiliser echo pour générer du HTML pur, il faut jongler entre PHP et
HTML en utilisant les balises <?php ?>. Pour afficher une valeur PHP dans du
HTML, utiliser <?= ?>.

$PHP_SELF


INTERDIT d'utiliser ces variables obsolètes -> $_SERVER (cf manuel depuis
PHP4+)

'


Préférer l'utilisation des doubles guillements " pour les attributs (cf
norme HTML du W3C) -> maintenant tu n'utilises plus echo donc tu peux
remplacer ' par "

Ton formulaire sans echo :

// On sort du PHP
?>
<form method='post' action='<?= $_SERVER ['PHP_SELF'] ?>'>

<table border='0' width='66' cellspacing='0'
cellpadding='0' height='277'>
..
<td width='190'><input type='text' name='politesse'
value='<?= $POLITESSE ?>' size='32'></td>
<td width='190'><input type='text' name='nom' value='<?= $NOM ?>'
size='32'></td>
..
env. 100 lignes
..

</table>

<p><input type='submit' name=mode value='Enregistrer'>
<input type='submit' name=mode value='Effacer'>
<input type=hidden name=last_id value='<?= $id ?>'>

</form>
<?php
// retour à PHP

JM

--
Clé AntiPourriel : PASUNPOURRIEL (ne pas retirer)

Avatar
Batman


Je ne trouve pas comment inclure cette boucle while au
milieu de mon formulaire.



J'ai pas compris la question mais je tente quand même une réponse (j'utilise
un foreach, j'ai pas en tete la syntaxe de while)


echo "<form method='post' action='$PHP_SELF'>

<table border='0' width='66' cellspacing='0'
cellpadding='0' height='277'>


<tr>
<td>Faites Votre choix</td>
<td><select name="MonSelect" >
<?
//preparation d'une solution alternative : *unset($MonFlux);*
foreach ( $TableauValeur -> $UneValeur ) {
$MonOption=$UneValeur["ID"];
$TexteOption=$UneValeur["Valeur"];
echo "nt<option value =$MonOption>$TexteOption</option>";
// ou alternative :
// *$MonFlux.="nt<option value =$MonOption>$TexteOption</option>";*
} // fin du foreach
// si utilisation de l'alternative,
// pour le placer n'importe ou ensuite dans le code : *echo $MonFlux;*
?>
</select></td></tr>
<table></form>


--
Les fautes d'orthographes sont ma signature :-)
retirer '.nospam' a la fin de mon email pour me répondre en BAL

Avatar
Zacland
"Otto Haldi" avait énoncé :

<p><input type='submit' name=mode value='Enregistrer'>
^ ^

<input type='submit' name=mode value='Effacer'>
^ ^

<input type=hidden name=last_id value='$id'>
^ ^ ^ ^


Il manque des ' aux emplacements des ^ dans les trois lignes du dessus,
sinon, le reste semble bon, il n'y a pas de raison que ça ne marche
pas...


--
-=Zac

Avatar
CrazyCat
Otto Haldi wrote:
J'ai un formulaire assez complexe que j'affiche avec un
simple echo. Voir extrait ci-dessous.

Je dois ajouter (env. au milieu du formulaire) un champ
sélection qui peut changer selon une table.

Je ne trouve pas comment inclure cette boucle while au
milieu de mon formulaire.


function myselect() {
$theselect = "<select name="toto">n";
// ici ta requete, on va dire qu'elle te ramene id et libelle
while (list($id,$libelle) = mysql_fetch_row($requete)) {
$theselect .= "<option value="$id">$libelle</option>n";
}
$theselect .= "</select>n";
return $theselect;
}

juste avant l'affichage de ton formulaire, tu met:
$select_var = myselect();
et dans ton affichage de formulaire, la ou tu veux ton select, tu met un
simple:
echo $select_var;
--
CrazyCat from C-P-F.org

Avatar
Stephane
J'ai un formulaire assez complexe que j'affiche avec un
simple echo. Voir extrait ci-dessous.

Je dois ajouter (env. au milieu du formulaire) un champ
sélection qui peut changer selon une table.

Je ne trouve pas comment inclure cette boucle while au
milieu de mon formulaire.



Je ne vois pas le code de ta boucle...
mais de cette facon ca devrait fonctionner:

echo "<form...
...
...
milieu du formulaire";

//instruction de ta boucle
echo "<select name=champ_select_from_ma_base>";
$result=mysql_query("select id,nom from ma_base")
while($row=mysql_fetch_array($result)){
echo "<option value=".$row["id"].">".$row["nom"]."</option>";
}
echo "</select>";
//fin d'affichage de ton select

//reprise de ton echo initial
echo "suite....
...
..
fin";

voila en esperant que ca t'aide

--

Stephane

Avatar
Otto Haldi
Bonjour Jean-Marc

Ne pas utiliser echo pour générer du HTML pur, il faut jongler entre PHP et
HTML en utilisant les balises <?php ?>.

Un grand merci pour ton aide. J'ai tout modifié selon ton exemple et cela

fonctionne parfaitement.
J'ai malheureusement vu dans certain bouquin que l'on pouvais/devais afficher
le code HTML avec echo ou Print!..


Pour afficher une valeur PHP dans du
HTML, utiliser <?= ?>.

De plus cela à laissé mon code super lite!


Meilleures salutations et bon weekend.

Otto

Avatar
Thibaut Allender
"Otto Haldi" wrote in message
news:
J'ai malheureusement vu dans certain bouquin que l'on pouvais/devais
afficher

le code HTML avec echo ou Print!..


bien sur qu'on peut le faire, et c'est parfois interessant de le faire, dans
une condition par exemple.

mais quand il a plus d'html que de php, il vaut mieux faire l'inverse (a
savoir, mettre le php dans l'html)

a+

--
+ thibaut allender // web design + php dev + digital photo
+ http://www.capsule.org

Avatar
Otto Haldi
Encore un grand merci à tous.

J'ai retenu la solution Jean-Marc. Voir ma réponse un peu
plus haut.

Bon weekend

Otto
Avatar
Stephane Sales
Thibaut Allender wrote:
"Otto Haldi" wrote in message
news:
J'ai malheureusement vu dans certain bouquin que l'on pouvais/devais
afficher

le code HTML avec echo ou Print!..
bien sur qu'on peut le faire, et c'est parfois interessant de le faire,

dans une condition par exemple.
mais quand il a plus d'html que de php, il vaut mieux faire l'inverse (a
savoir, mettre le php dans l'html)
y a t il une raison autre qu'une histoire de gout ?

par exemple entre la version de php intégré au html :
<form method='post' action='<?= $_SERVER ['PHP_SELF'] ?>'>
et ca :
echo '<form method="post" action="'.$_SERVER['PHP_SELF'].'">'

y a t'il à avoir une préférence ?
par exemple : je n'ai pas éssayé la 1 ère méthode, mais donnerait elle du
code xhtml valide(attributs *doivent* être entre double quotes) ?

stéphane déguisé en développeur PHP depuis un mois
--
«je copie le fichier rpm dans un répertoire et l'installe, maintenant
je ne sais pas lancer l'appli car elle ne s'est pas mise dans le menu
"Démarrer-Programmes".»
-+- Stéph in Guide du linuxien pervers : "install.exe il est ou?" -+-


Avatar
Jedi121
Stephane Sales wrote:
<form method='post' action='<?= $_SERVER ['PHP_SELF'] ?>'>
et ca :
echo '<form method="post" action="'.$_SERVER['PHP_SELF'].'">'

y a t'il à avoir une préférence ?
par exemple : je n'ai pas éssayé la 1 ère méthode, mais donnerait
elle du code xhtml valide(attributs *doivent* être entre double
quotes) ?


Telle que tu l'as écrite non, mais si tu l'écris avec des doubles quotes, oui :
<form method="post" action="<?= $_SERVER['PHP_SELF'] ?>">

1 2