未在 PHP 中发布的复选框
Checkboxes not posting in PHP
所以我试图从 3 个复选框中获取值,这些复选框稍后将被发送到数据库,但由于某些原因,它们在我测试时没有在 PHP 中发布。
<table width="200" border="0">
<tr>
<td><img src="images/image1.jpg" ></td>
<td><img src="images/image2.jpg" ></td>
<td><img src="images/image3.jpg" ></td>
</tr>
<tr>
<td><input type="checkbox" id="checkbox65" class="css-checkbox med" name="avatar" value="image1"/>
<label for="checkbox65" class="css-label med elegant" /></label></td>
<td><input type="checkbox" id="checkbox66" class="css-checkbox med" name="avatar" value="image2"/>
<label for="checkbox66" class="css-label med elegant" /></label></td>
<td><input type="checkbox" id="checkbox67" class="css-checkbox med" name="avatar" value="image3"/>
<label for="checkbox67" class="css-label med elegant" ></label></td>
</tr>
</table><br>
我在另一个页面发帖:
<?php
if(isset($_POST['submit'])){$avatar=$_POST['avatar'];}
echo $avatar; ?>
但我得到
Undefined index: avatar on line 14
我有表单标签,一切都是正确的,这就是一个不同的问题,页面上的其他所有内容都正确发布,除了这一件事
我认为你必须在你的输入周围放置一个 <form>
标签。在那个标签中,你应该指定(作为动作)php 文件,它将 reviece 数据;)
看看那个:http://www.html-form-guide.com/php-form/php-form-checkbox.html
编辑:
根据 your original post,您需要将复选框视为一个数组。
旁注:您应该始终在原始问题下方进行编辑并标记为编辑,以免覆盖原始问题。
即:name="avatar[]"
在具有相同名称属性的每个元素周围添加方括号。然后,您需要使用 foreach
循环,同时使用条件语句并将 POST 数组及其变量放在该循环中。
<form action="reg_test.php" method="post">
Username:<br>
<input type="text" name="username"><br>
Password:
<input type="password" name="password" ><br>
E-mail:
<input type="text" name="email" ><br>
Avatar:
<table width="200" border="0">
<tr>
<td><img src="images/avatars/image1.jpg" ></td>
<td><img src="images/avatars/image2.jpg" ></td>
<td><img src="images/avatars/image3.jpg" ></td>
</tr>
<tr>
<td><input type="checkbox" id="checkbox65" class="css-checkbox med" name="avatar[]" value="image1"/>
<label for="checkbox65" class="css-label med elegant" /></label></td>
<td><input type="checkbox" id="checkbox66" class="css-checkbox med" name="avatar[]" value="image2"/>
<label for="checkbox66" class="css-label med elegant" /></label></td>
<td><input type="checkbox" id="checkbox67" class="css-checkbox med" name="avatar[]" value="image3"/>
<label for="checkbox67" class="css-label med elegant" ></label></td>
</tr>
</table><br>
<input type="submit" value="Register" name="submit">
</form>
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
if(isset($_POST['submit'])){
$username=$_POST['username'];
$password=$_POST['password'];
$email=$_POST['email'];
if(isset($_POST['avatar'])){
$avatar=$_POST['avatar'];
foreach ($avatar as $avatars=>$value) {
echo "Avatars : ".$value."<br />";
}
echo $username.",".$password.",".$email."</br>";
}
} // brace for if(isset($_POST['submit']))
?>
- 此示例摘自 Stack 上的此答案:
所以我试图从 3 个复选框中获取值,这些复选框稍后将被发送到数据库,但由于某些原因,它们在我测试时没有在 PHP 中发布。
<table width="200" border="0">
<tr>
<td><img src="images/image1.jpg" ></td>
<td><img src="images/image2.jpg" ></td>
<td><img src="images/image3.jpg" ></td>
</tr>
<tr>
<td><input type="checkbox" id="checkbox65" class="css-checkbox med" name="avatar" value="image1"/>
<label for="checkbox65" class="css-label med elegant" /></label></td>
<td><input type="checkbox" id="checkbox66" class="css-checkbox med" name="avatar" value="image2"/>
<label for="checkbox66" class="css-label med elegant" /></label></td>
<td><input type="checkbox" id="checkbox67" class="css-checkbox med" name="avatar" value="image3"/>
<label for="checkbox67" class="css-label med elegant" ></label></td>
</tr>
</table><br>
我在另一个页面发帖:
<?php
if(isset($_POST['submit'])){$avatar=$_POST['avatar'];}
echo $avatar; ?>
但我得到
Undefined index: avatar on line 14
我有表单标签,一切都是正确的,这就是一个不同的问题,页面上的其他所有内容都正确发布,除了这一件事
我认为你必须在你的输入周围放置一个 <form>
标签。在那个标签中,你应该指定(作为动作)php 文件,它将 reviece 数据;)
看看那个:http://www.html-form-guide.com/php-form/php-form-checkbox.html
编辑:
根据 your original post,您需要将复选框视为一个数组。
旁注:您应该始终在原始问题下方进行编辑并标记为编辑,以免覆盖原始问题。
即:name="avatar[]"
在具有相同名称属性的每个元素周围添加方括号。然后,您需要使用 foreach
循环,同时使用条件语句并将 POST 数组及其变量放在该循环中。
<form action="reg_test.php" method="post">
Username:<br>
<input type="text" name="username"><br>
Password:
<input type="password" name="password" ><br>
E-mail:
<input type="text" name="email" ><br>
Avatar:
<table width="200" border="0">
<tr>
<td><img src="images/avatars/image1.jpg" ></td>
<td><img src="images/avatars/image2.jpg" ></td>
<td><img src="images/avatars/image3.jpg" ></td>
</tr>
<tr>
<td><input type="checkbox" id="checkbox65" class="css-checkbox med" name="avatar[]" value="image1"/>
<label for="checkbox65" class="css-label med elegant" /></label></td>
<td><input type="checkbox" id="checkbox66" class="css-checkbox med" name="avatar[]" value="image2"/>
<label for="checkbox66" class="css-label med elegant" /></label></td>
<td><input type="checkbox" id="checkbox67" class="css-checkbox med" name="avatar[]" value="image3"/>
<label for="checkbox67" class="css-label med elegant" ></label></td>
</tr>
</table><br>
<input type="submit" value="Register" name="submit">
</form>
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
if(isset($_POST['submit'])){
$username=$_POST['username'];
$password=$_POST['password'];
$email=$_POST['email'];
if(isset($_POST['avatar'])){
$avatar=$_POST['avatar'];
foreach ($avatar as $avatars=>$value) {
echo "Avatars : ".$value."<br />";
}
echo $username.",".$password.",".$email."</br>";
}
} // brace for if(isset($_POST['submit']))
?>
- 此示例摘自 Stack 上的此答案: