2010-07-01 5 views
0

Lorsque les visiteurs s'inscrivent sur mon site, ils le feront en tant que membre fondateur d'un groupe ou en tant que personne rejoignant un groupe existant. Personne n'est "sans groupe". J'ai une seule page d'enregistrement avec les champs suivants: prénom, nom, (boutons radio pour choisir le type de groupe: Nouveau ou existant), nom du groupe, mot de passe du groupe, email, passe, confirmer le passage. Je suis spécifiquement concerné par les boutons radio, le nom du groupe et le mot de passe du groupe.
La fonction spécifique que je cherche est la suivante: Si "Nouveau" est sélectionné, AJAX vérifie si le nom du groupe existe dans la base de données, affiche "Bon" ou "Déjà pris". AUSSI: lorsque le formulaire est soumis, mot de passe enregistré dans la base de données.
Si "Existant" est sélectionné, AJAX vérifie si le nom du groupe existe dans db, affiche "Correspondant" ou "Non-existant". AUSSI: lorsque le formulaire est soumis, le mot de passe est vérifié par rapport à la base de données. Les bases de ce que je pense que je maîtrise, mais comment obtenir le bouton radio pour dicter tellement est au-delà de moi. Toute aide serait appréciée.Comment puis-je faire un bouton radio contrôler tout cela?

Voici la partie forme de mon fichier php. (Soit dit en passant, j'ai écrit mysqli pour ce projet.)

<h1>Register</h1> 
<form action="register.php" method="post"> 
    <fieldset> 

    <p><b>First Name:</b> <input type="text" name="first_name" size="20" maxlength="20" value="<?php if (isset($trimmed['first_name'])) echo $trimmed['first_name']; ?>" /></p> 

    <p><b>Last Name:</b> <input type="text" name="last_name" size="20" maxlength="40" value="<?php if (isset($trimmed['last_name'])) echo $trimmed['last_name']; ?>" /></p> 

    <p><b>Are you registering a new group or joining an existing group?</b> <br /> 
    New:<input type="radio" value="new" name="gtype">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 
    Existing:<input type="radio" value="existing" name="gtype"> </p> 

    <p><b>Group ID:</b> <input type="text" name="group_id" size="20" maxlength="40" value="<?php if (isset($trimmed['group_id'])) echo $trimmed['group_id']; ?>" /></p> 

    <p><b>Group Password:</b> <input type="password" name="gpass" size="8" maxlength="5" /> 
     <small>Use only numbers. Must be 5 digits long.</small></p> 

    <p><b>Email Address:</b> 
    <input type="text" name="email" size="30" maxlength="80" value="<?php if (isset($trimmed['email'])) echo $trimmed['email']; ?>" onBlur='checkEmail(this)'/><span id='info'></span></p> 

    <p><b>User Password:</b> 
     <input type="password" name="password1" size="8" maxlength="4" /> 
     <small>Use only numbers. Must be 4 digits long.</small></p> 
    <p><b>Confirm Password:</b> <input type="password" name="password2" size="4" maxlength="4" /></p> 
    </fieldset> 

    <div align="center"><input type="submit" name="submit" value="Register" /></div> 
    <input type="hidden" name="submitted" value="TRUE" /> 

</form> 
+0

'Si" Existant "est sélectionné, AJAX vérifie si le nom du groupe existe dans db' N'oubliez pas de refaire ce même contrôle lorsque le formulaire est soumis, ou vous aurez un trou de sécurité –

Répondre

0

Je suggère d'utiliser jquery:

détecter le changement du bouton radio, comme ceci:

$("input[@name='gtype']").change(

Saisissez le contenu de l'entrée de texte contenant le nom du groupe et envoyez-le à un script PHP.

$.ajax 
     ({ 
      url: 'Apps/CheckGroupName.php', 
      type: 'POST', 
      data: 'groupName=' + groupName, 

      success: function(result) 
      { 
       // Do whatever you need to do based on the result 
      } 
     }); 

Dans le script PHP, vérifiez le nom du groupe dans la base de données et renvoyez le résultat. Dans JQuery, ce résultat se terminera par un succès: fonction (résultat), où vous pouvez faire ce que vous devez faire (comme avertir l'utilisateur, ou confirmer que le groupe n'existe pas)

+0

Je suis désolé, il y a quelque chose qui m'échappe ici. Je ne comprends pas comment/où je devrais utiliser ce premier morceau de code.Pourriez-vous expliquer? Merci – David

+0

@David: Ah, vous n'avez jamais utilisé jQuery, avez-vous? Vous êtes dans une friandise, mais vous devrez étudier un peu d'abord pour comprendre comment cela fonctionne.Je vous recommande de passer par les excellents didacticiels vidéo à http://blog.themeforest.net/screencasts/jquery-for-absolute-beginners-video-series/. un peu de temps, mais vous serez heureux de l'avoir fait. pour expliquer le code pour vous, je devrais expliquer comment installer la bibliothèque, comment travailler avec le DOM et à peu près tout ce qui est déjà couvert dans ces tutoriels. – Sylverdrag