form : fusion de 2 valeurs

Invité
Invité n'ayant pas de compte PHPfrance

16 janv. 2007, 11:11

Bonjour,

Est-ce possible de fusionner 2 valeurs dans un form ?

J'ai un :

Code : Tout sélectionner

print "<form action='toto.php' method='post'>"; print "<b>nom: <input size='30%'>"; print "prénom:<input length='15'>"; print "<input type='submit' name='submit' value='Post'></form>";
et je voudrais que la valeur envoyé ne soit pas d'un côté name=nom et de l'autre name=prénom mais name=nom+prénom.

Est-ce possible ? Merci pour toute aide.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

16 janv. 2007, 11:15

Tu peux le faire en javascript, avec un champ hidden. Il te suffit d'y concaténer tes valeurs avant d'envoyer le formulaire... mais ne serait-il pas plus simple de concaténer les deux champs une fois récupérés dans php ?
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Invité
Invité n'ayant pas de compte PHPfrance

16 janv. 2007, 11:19

avec un
$copain=$_POST[nom]
$copain.=$_POST[prénom]
?

ViPHP
ViPHP | 1961 Messages

16 janv. 2007, 11:23

Bonjour,
avec un
$copain=$_POST[nom]
$copain.=$_POST[prénom]
?
Sans oublier de tester que les deux existent et de mettre un espace entre les deux.
Deux choses sont infinies, l'Univers et la sottise humaine!!
Mais je ne suis pas sur de ce que j'affirme au sujet de l'Univers.

A. Einstein

Invité
Invité n'ayant pas de compte PHPfrance

16 janv. 2007, 11:31

Je viens de modifier le code ET CA MARCHE !

Grand merci!

Invité
Invité n'ayant pas de compte PHPfrance

16 janv. 2007, 11:37

Pour l'espace, j'ai mis un :
$nom.=" ";


entre les deux. Merci infiniment.

ViPHP
ViPHP | 1961 Messages

16 janv. 2007, 11:41

Re,

Plus simple
if(isset($_POST['nom']) && isset($_POST['prenom'])) {
   $copain = $_POST['nom'] . ' ' . $_POST['prenom'];
}
Deux choses sont infinies, l'Univers et la sottise humaine!!
Mais je ne suis pas sur de ce que j'affirme au sujet de l'Univers.

A. Einstein

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

16 janv. 2007, 11:48

On peut aussi le faire comme ça, pour quand même récupérer une valeur si l'un des deux champs n'a pas été renseigné :
$nom = isset($_POST['nom']) ? $_POST['nom'] : '';
$prenom = isset($_POST['prenom']) ? $_POST['prenom'] : '';
$copain = trim($nom . ' ' . $prenom);

//ou bien directement
$copain = (isset($_POST['nom']) ? $_POST['nom'] : '') . ' ' . (isset($_POST['prenom']) ? $_POST['prenom'] : '');

Edit : correction du code : suppression des isSet en trop.
Edit 2 : correction du code : suppression de la "(" en trop

je suis un boulet, je suis un boulet, je suis un boulet, je suis un boulet, ... |*()
Modifié en dernier par Ryle le 16 janv. 2007, 12:44, modifié 2 fois.
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

ViPHP
ViPHP | 1961 Messages

16 janv. 2007, 11:51

Re,
//ou bien directement
$copain = ((isset($_POST['nom']) ? $_POST['nom'] : '') . ' ' . (isset($_POST['prenom']) ? isset($_POST['prenom'] : '');
Tu ne crois pas que tu lui compliques la vie (compréhension) ?
EDIT :

Une petite erreur
(isset($_POST['prenom']) ? isset($_POST['prenom'] : ''); 
devrait être
(isset($_POST['prenom']) ? $_POST['prenom'] : '');
Deux choses sont infinies, l'Univers et la sottise humaine!!
Mais je ne suis pas sur de ce que j'affirme au sujet de l'Univers.

A. Einstein

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

16 janv. 2007, 11:58

Si c'est sur... c'est plus compliqué. Mais ça peut aussi ouvrir sa curiosité vers l'opérateur ternaire (voir la FAQ), la sienne ou celle de quelqu'un qui tomberait sur ce sujet d'ailleurs :)

Sinon pour le isSet en trop, c'est ce qu'en langage technique on qualifie communément de "boulette" :oops: ;)
(je vais corriger, sait-on jamais)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Administrateur PHPfrance
Administrateur PHPfrance | 11457 Messages

16 janv. 2007, 12:36

//ou bien directement
$copain = ((isset($_POST['nom']) ? $_POST['nom'] : '') . ' ' . (isset($_POST['prenom']) ? $_POST['prenom'] : '');
Tu ne crois pas que tu lui compliques la vie (compréhension) ?
Je m'en voudrais d'ouvrir une polémique, mais...
c'est bien le code de Ryle qui a ma préférence. :lol: :-*

Opérateur ternaire powaaaaaaaaaaaaa ! :langue:

Administrateur PHPfrance
Administrateur PHPfrance | 11457 Messages

16 janv. 2007, 12:37

Ma suggestion finale :
$copain = trim((isset($_POST['nom']) ? $_POST['nom'] : '') . ' ' . (isset($_POST['prenom']) ? $_POST['prenom'] : ''));
PS : Ryle, il me semble bien que tu avais une ( ouvrante en surnombre. :-k

ViPHP
ViPHP | 1961 Messages

16 janv. 2007, 12:40

//ou bien directement
$copain = ((isset($_POST['nom']) ? $_POST['nom'] : '') . ' ' . (isset($_POST['prenom']) ? $_POST['prenom'] : '');
Tu ne crois pas que tu lui compliques la vie (compréhension) ?
Je m'en voudrais d'ouvrir une polémique, mais...
c'est bien le code de Ryle qui a ma préférence. :lol: :-*

Opérateur ternaire powaaaaaaaaaaaaa ! :langue:
Je ne suis pas contre l'utilisation de l'opérateur ternaire, bien au contraire,
mais lui montrer un double quand pour ajouter un espace il fait
$copain=$_POST['nom'];
$copain.=" ";
$copain.=$_POST['prenom'];
Je pense que c'est vraiment prématuré.
Deux choses sont infinies, l'Univers et la sottise humaine!!
Mais je ne suis pas sur de ce que j'affirme au sujet de l'Univers.

A. Einstein

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

16 janv. 2007, 12:53

Je pense que c'est vraiment prématuré.
ah...... donc ça je lui en parle pas non plus ? :roll: ;)
class Copain {
  var $nom;
  var $prenom;

  function Copain($nom='', $prenom='') {
    $this->setNom($nom);
    $this->setPrenom($prenom);
  }
  function display() {
    return trim($this->getNom() . ' ' . $this->getPrenom());
  }
  function getNom() {
    return $this->nom;
  }
  function setNom($val) {
    $this->nom = $val;
  }
  function getPrenom($val) {
    $this->prenom = $val;
  }
  function setPrenom($val) {
    $this->prenom = $val;
  }
}
@albat : ouep pour la parenthèse :cry:
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Administrateur PHPfrance
Administrateur PHPfrance | 11457 Messages

16 janv. 2007, 12:55

Avec tes exploits, on va avoir du mal à expliquer
que la POO permet de simplifier les développements... :evil: