【问题标题】:How can I make a radio button control all of this?我怎样才能使单选按钮控制所有这些?
【发布时间】:2010-07-01 19:03:43
【问题描述】:

当访问者在我的网站上注册时,他们将作为群组的创始成员或作为加入现有群组的人进行注册。没有人是“无群体”的。我有一个包含以下字段的注册页面:名字,姓氏,(选择组类型的单选按钮:新的或现有的),组名,组密码,电子邮件,通过,确认通过。我特别关心单选按钮、组名和组密码。
我正在寻找的具体功能是这样的: 如果选择“新建”,AJAX 会检查数据库中是否存在组名,显示“良好”或“已采用”。另外:提交表单时,密码保存到数据库。
如果选择“Existing”,AJAX 会检查 db 中是否存在组名,显示“Matched”或“Non-existent”。另外:提交表单时,会根据数据库检查密码。

我想我已经掌握了这方面的基础知识,但是如何让单选按钮指示这么多内容却超出了我的范围。任何帮助,将不胜感激。

以下是我的 php 文件的表单部分。 (顺便说一句,我一直在为这个项目写mysqli。)

<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>

【问题讨论】:

  • If "Existing" is selected, AJAX checks if group name exists in db 在提交表单时不要忘记再次进行同样的检查,否则会出现安全漏洞。

标签: php javascript mysql ajax


【解决方案1】:

我建议使用jquery:

检测单选按钮的变化,像这样:

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

获取包含组名的文本输入内容,并将其发送到 PHP 脚本。

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

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

在 PHP 脚本中,检查数据库中的组名,并回显结果。在 JQuery 中,该结果最终会成功:函数(结果),您可以在其中做任何您需要做的事情(例如警告用户,或确认该组不存在。

【讨论】:

  • 对不起。有什么东西正在逃离我这里。我不太明白应该如何/在哪里使用第一段代码。你能解释一下吗?谢谢。
  • @David:啊,你从来没有用过jQuery,是吗?你是在享受一种享受,但你必须先学习一点才能了解它是如何工作的。我建议您通过blog.themeforest.net/screencasts/… 观看优秀的视频教程。你将不得不投入一些时间,但你会很高兴你做到了。如果我必须为您解释代码,我将不得不解释如何安装库、如何使用 DOM 以及这些教程中已经涵盖的几乎所有其他内容。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-10-13
  • 2022-01-24
  • 2020-11-09
  • 2013-01-28
  • 2022-01-17
  • 2012-01-09
  • 2015-02-05
相关资源
最近更新 更多