单选按钮值,仅发送一个表单参数

时间:2017-06-18 07:53:15

标签: php mysql

我想在我的应用程序中使用单选按钮。当我单击Male时,我希望它将男性输入到数据库中,当我单击Female时,它会将女性发送到数据库中。

代码看起来像这样

<html>
<head></head>
<title>Radio Test</title>
<body>
<h1>Radio Test</h1>
<form name="testform" id="testform" method="post" action="test.php" />
Name : <input type="text" name="fullname" id="fullname" /></br>
    Male <input type="radio" name="male" id="male" value="Male" />
    Female <input type="radio" name="female" id="female" value="FeMale" /></br></p>
        <input type="submit" name="submit" value="Submit" />
</form>
</body>
</html>

对于HTML区域,现在我想让它成为输出值,但它没有响应。我的PHP看起来像这样,但不是发送一个值,而是发送两个

<?php

$host = "127.0.0.1"
$user = "root"
$pass = ""
$db = "people_info"

$con = mysqli_connect($host, $user, $pass, $db) or die('Cannot Connect :'.mysqli_error());
$fullname = mysqli_real_escape_string($con, $_POST['fullname']);
$male = mysqli_real_escape_string($con, $_POST['male']);
$female = mysqli_real_escape_string($con, $_POST['female']);

$sql = "insert into data (fullname,male,female) values ('".$fullname."', '".$male."', '".$female."')";
mysqli_query($con,$sql) or die ('Failed Query :'.mysqli_error($con));
mysqli_close($con);
?>

我正在考虑使用switch case,但这让它变得更糟。它没有发送任何值..

2 个答案:

答案 0 :(得分:1)

我认为,您的表格中应该有一列Gender。我不确定你为什么要把它存放在两个不同的栏目中。

将您的代码更改为以下

Male <input type="radio" name="gender" id="male" value="Male" />
Female <input type="radio" name="gender" id="female" value="FeMale" /></br></p>

然后,

 $gender = mysqli_real_escape_string($con, $_POST['gender']);

答案 1 :(得分:0)

无线电输入中的name属性指定了它的无线电组。因此,当您尝试提交表单时,它会发送两个值。将两者的name属性指定为gender之类的东西,它会起作用。

<label for="male">Male</label> 
<input type="radio" name="gender" id="male" value="male" />

<label for="female">Female</label> 
<input type="radio" name="gender" id="female" value="female" />

在PHP部分中,您只需要请求一次该值,所以请执行以下操作:
$gender = mysqli_real_escape_string($con, $_POST['gender']);