获得< select>的选定索引值.在PHP中标记 [英] get the selected index value of <select> tag in php

查看:48
本文介绍了获得< select>的选定索引值.在PHP中标记的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我试图从PHP中的<select>标记中获取选定的值,但出现错误.

I was trying to get the selected value from the <select> tag in PHP, but I get errors.

这些是我所做的,

HTML

<select name="gender">
<option value="select">  Select </option>
<option value="male">    Male   </option>
<option value="female">  Female </option>
</select>

PHP脚本

$Gender  = $_POST["gender"];

但是我得到这些错误

Notice: Undefined index: gender in C:\xampp\htdocs\omnama\signup.php on line 7

php脚本

$Gender  = isset($_POST["gender"]); ' it returns a empty string ? why ?

HTML

<form name="signup_form"  action="./signup.php" onsubmit="return validateForm()"   method="post">
<table> 
  <tr> <td> First Name    </td><td> <input type="text" name="fname" size=10/></td></tr>
  <tr> <td> Last Name     </td><td> <input type="text" name="lname" size=10/></td></tr>
  <tr> <td> Your Email    </td><td> <input type="text" name="email" size=10/></td></tr>
  <tr> <td> Re-type Email </td><td> <input type="text" name="remail"size=10/></td></tr>
  <tr> <td> Password      </td><td> <input type="password" name="paswod" size=10/> </td></tr>
  <tr> <td> Gender        </td><td> <select name="gender">
  <option>                Select </option>    
  <option value="male">   Male   </option>
  <option value="female"> Female </option></select></td></tr> 
  <tr> <td> <input type="submit" value="Sign up" id="signup"/> </td> </tr>
 </table>
 </form>

这是我的php脚本

  <?php
  $con     = mysql_connect("localhost","root","");
  $fname   = $_POST["fname"];
  $lname   = $_POST["lname"];
  $email   =  $_POST["email"];
  $paswod  = $_POST["paswod"];
  $Gender  = $_POST["gender"];
  mysql_select_db("homepage");

  if(mysql_num_rows(mysql_query("SELECT Email FROM users WHERE Email = '$email'",$con)))
  {
  echo "userid is already there";
  }
  else
  { 
  $sql= "INSERT INTO users (FirstName, LastName,Email,Password,Gender)
  VALUES
  ('$fname','$lname','$email','$paswod','$Gender')";

  if (!mysql_query($sql,$con))
  {
  die('Error: ' . mysql_error());
  }
  echo "created";
  }
 ?> 

请帮助我解决这些问题.我必须在PHP中获取选定的索引值.

Please help me with these. I have to get the selected index value in the PHP.

我已经阅读了此

I have read this link to use <select> tag in PHP.

推荐答案

您的表格有效.在看到完整的html之后,我想到的唯一的事情是您传递的是默认"值(未设置!),而不是选择了某些东西. 按照评论中@Vina的建议尝试,即为它提供一个选定的选项,或编写一个默认值

Your form is valid. Only thing that comes to my mind is, after seeing your full html, is that you're passing your "default" value (which is not set!) instead of selecting something. Try as suggested by @Vina in the comment, i.e. giving it a selected option, or writing a default value

<select name="gender">
<option value="default">Select </option>    
<option value="male">   Male   </option>
<option value="female"> Female </option>
</select>

OR

<select name="gender">
<option value="male" selected="selected">   Male   </option>
<option value="female"> Female </option>
</select>

当您获得$ _POST变量时,请检查它们是否已设置;您可以指定默认值,也可以指定一个空字符串(如果不存在的话).

When you get your $_POST vars, check for them being set; you can assign a default value, or just an empty string in case they're not there.

最重要的是,避免SQL注入:

//....
$fname   = isset($_POST["fname"]) ? mysql_real_escape_string($_POST['fname']) : '';
$lname   = isset($_POST['lname']) ? mysql_real_escape_string($_POST['lname']) : '';
$email   = isset($_POST['email']) ? mysql_real_escape_string($_POST['email']) : '';
you might also want to validate e-mail:
if($mail = filter_var($_POST['email'], FILTER_VALIDATE_EMAIL))
{
  $email = mysql_real_escape_string($_POST['email']);
}
else
{
  //die ('invalid email address');
  // or whatever, a default value? $email = '';
}
$paswod  = isset($_POST["paswod"]) ? mysql_real_escape_string($_POST['paswod']) : '';
$gender  = isset($_POST['gender']) ? mysql_real_escape_string($_POST['gender']) : '';

$query = mysql_query("SELECT Email FROM users WHERE Email = '".$email."')";
if(mysql_num_rows($query)> 0)
{
  echo 'userid is already there';
}
else
{
 $sql = "INSERT INTO users (FirstName, LastName, Email, Password, Gender)
         VALUES ('".$fname."','".$lname."','".$email."','".paswod."','".$gender."')";
$res = mysql_query($sql) or die('Error:'.mysql_error());
echo 'created';

这篇关于获得&lt; select&gt;的选定索引值.在PHP中标记的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆