Page 1 sur 1

Pb pour placer mes guillemets avec echo()

Posté : 06 avr. 2006, 20:49
par leroimarco
Bonsoir à tous,

J'ai cette fonction simple qui créé un champ de formulaire :
function FormInput ($label, $name, $size, $maxlenght, $needed) {

  $result_forminput  = '<label for="' . $name . '">' . $label . '<input type="text" id="' . $name;
  $result_forminput .= '" value="';
  $result_forminput .= '<? echo (isset($_POST[\'' . $name . '\']))?$_POST[\'' . $name . '\']:NULL; ?>';
  $result_forminput .= '" size="' . $size . '" maxlenght="' . $maxlenght . '" />';
  $result_forminput .= '</label>';

  echo $result_forminput;
}
le problème vient de ma troisième ligne de $result_forminput puisque à l'attribut 'value', je veux afficher ce qui a déjà été saisi mais le fait est qu'il m'affiche la ligne

<? echo (isset($_POST['age_capitaine']))?$_POST['age_capitaine']:NULL; ?>"

dans le champ du formulaire ! Ce doit être un pb de guillemets simples ou doubles mais je n'arrive pas à faire la syntaxe correcte :?

Merci de vos idées si vous passez par là 8)

Bonne soirée à tous,
JM

Posté : 06 avr. 2006, 21:05
par charabia
Pourquoi mets-tu une balise PHP "<? ?>" dans ta fonction...? La fonction devrait s'y trouver déjà non ?

Posté : 06 avr. 2006, 21:52
par leroimarco
oui, c'est ce que je pensais aussi mais si je les enlèves, ça me marque toujours la même chose :?

C'est surement tout bete mais mes différentes tentatives n'ont rien donné de valable. Donc je sèche un peu sur ce coup là..

@++

Re: Pb pour placer mes guillemets avec echo()

Posté : 06 avr. 2006, 22:11
par jpaul
Tu as mis :
  $result_forminput .= '<? echo (isset($_POST[\'' . $name . '\']))?$_POST[\'' . $name . '\']:NULL; ?>';
/>';
C'est bizare comme ligne !
Si tu veux que ça s'esécute, il ne faut pas mettre de quote...
As tu essayé ca :
  $result_forminput .=isset($_POST[\'' . $name . '\'])?$_POST[\'' . $name . '\']:NULL;
?
Je ne pratique pas ce type de code (cond?alors_ca:ou_bien_ca), il y a peut être une essreur dans la ligne que je propose, moi je ferais :
if (isset($_POST[\'' . $name . '\'])) {
  $result_forminput .=$_POST[\'' . $name . '\'];
}

Posté : 06 avr. 2006, 22:25
par leroimarco
merci de ta contribution jpaul.

Effectivement, il se peut que l'erreur vienne de là. Je teste et je te dis quoi :wink:

Posté : 06 avr. 2006, 22:31
par leroimarco
Bingo, merci jpaul de ta proposition qui m'a permis de retrouver le droit chemin :)

En fait, la syntaxe exacte est :
function FormInput ($label, $name, $size, $maxlenght, $needed) {

  $tableau = array($name);

  $result_forminput  = '<label for="' . $name . '">' . $label . '</label>' . "\n" . '<input type="text" id="' . $name;
  $result_forminput .= '" value="';
  $result_forminput .= isset($_POST['$name'])?$_POST['$name']:NULL;
  $result_forminput .= '" size="' . $size . '" maxlenght="' . $maxlenght . '" />';
  $result_forminput .= "\n";
}
Et voilà! Un petit coup de balise "[RESOLU]" et je retourne bosser !
Merci à vous du sérieux coup de main en tout cas :wink:
Bonne soirée,
JM