2009-10-20 7 views
0
<p>First Name <input type="text" name="first_name"> Last Name <input type="text" name="last_name"></p> 
<input type="hidden" name="screen_name" value="first_name + last_name"> 

Comment puis-je prendre ce qui a été tapé dans les champs de prenom et last_name et les ajouter ensemble à la screen_name alors quand le champ est soumis, il saisit les valeurs de manière appropriée pour le champ screen_name?Nécessité de prendre deux valeurs de champ de texte et ajouter ainsi à un autre champ

Je suis à la recherche d'une résolution php ou jQuery.

Est-ce que cela ferait l'affaire?

<?php $screen_name = $_POST["first_name"]." ".$_POST["last_name"]; ?> 

    <input type="hidden" name="screen_name" value="<?php print $screen_name; ?>" /> 
+0

Une précision: Le code php-exécute sur le serveur au temps, la page est téléchargée par le navigateur. Si l'utilisateur change le prénom ou le nom, le code php ne sera plus exécuté et votre nom d'écran masqué sera toujours vide. Vous devez concaténer les chaînes lorsque vous publiez la page sur le serveur. Et assurez-vous de les désinfecter au moins en les coupant. – some

Répondre

0

Pour PHP (sur le côté serveur):. « . $ _ POST

$ ScreenName = $ _POST [ "prenom"] » [ "last_name"]

Avec jQuery (côté client) vous devrez ajouter ids aux champs pour les accès plus facile:

<p>First Name <input type="text" name="first_name" id="first_name"> Last Name <input type="text" name="last_name" id="last_name"></p> 
<input type="hidden" name="screen_name" value="first_name + last_name" id="screen_name"> 

et puis sur le formulaire soumettre événement (ou champ de saisie événement changement) définir la valeur du champ screen_name:

var screenNameVal = $.("#first_name").attr("value")+" "+$.("#last_name").attr("value"); 
$.("#screen_name").attr("value",screenNameVal); 
+0

@bucabay a un point très important cependant que quelqu'un peut désactiver Javascript et soumettre leur propre valeur pour le nom d'écran, ainsi si possible avec jQuery pour le faire à l'avance c'est le meilleur avec PHP côté serveur – catsby

+0

Ne faites jamais confiance à l'entrée de l'utilisateur. Toujours l'assainir. Au moins, coupez-le (enlevez les espaces blancs au début et à la fin). Même si javascript est génial et utile, assurez-vous que vos pages fonctionnent autant que possible même si elles ne sont pas disponibles (l'utilisateur peut l'avoir désactivé). – some

+0

Vérifiez votre jQuery, cela ne fonctionne pas –

3

Il vaut mieux omettre le nom d'écran tous ensemble. Juste concaténer les valeurs de first_name et last_name du côté PHP.

<?php 

$screen_name = $_REQUEST['first_name'].$_REQUEST['last_name']; 

?> 

Si vous utilisez JavaScript, quelqu'un peut simplement le désactiver et vous envoyer un nom d'écran qui ne sont pas réellement leur nom et prénom.

+1

Suggestions: Couper à la fois le prénom et le nom de famille puisque l'utilisateur aurait pu y insérer des espaces (et peut-être mettre un espace entre le prénom et le nom). Assurez-vous également que le prénom et le nom , aucun caractère spécial, correction de cas ... – some

2

Je suis d'accord, il devrait être côté serveur, mais juste pour répondre à votre question:

var combinedName = $("input[name='first_name']").val() + $("input[name='last_name']").val(); 
$("input[name='screen_name']").val(combinedName); 
0

C'est ce que j'utilise

<script type="text/javascript"> 
     $('input[name="firstname"], input[name="lastname"]').blur(function() { 
      $('input[name="fullname"]').val(function() { 
       return $('input[name="firstname"]').val() + ' ' + $('input[name="lastname"]').val(); 
      }); 
     }); 
    </script> 
Questions connexes