我有一个复选框列表,我用表中的数据填充它。这是代码:
<?php
mysql_connect("localhost","root","");
mysql_select_db("erp");
$a="Select * from magazine";
$b=mysql_query($a);
$c=mysql_fetch_array($b);
while($c=mysql_fetch_array($b))
{
print '<input type="checkbox"/>'.$c['den_mag'];
echo "</br>";
}
if(isset($_POST['den_mag']))
{
echo "aaaa";
}
?>
这是一个简单的查询,每个数据只显示一个复选框。现在我想要的是当我按一个复选框时,该复选框的值将显示在一个表中。如果我的check1值为a,check2使用值b和我检查check1要输出到表行的值。如何实现?我如何得到哪个复选框?
答案 0 :(得分:2)
<input name="test" type="checkbox" />
<?php
if(isset($_REQUEST['test'])){
// selected
}
?>
当你给输入类型元素(input,textarea,select,button)一个name属性(就像我做的那样)时,浏览器会将元素的状态/值提交给服务器(如果已经提交了包含的表单) )。
如果是复选框,您实际上不需要检查值,只是它存在。如果未选中该复选框,则不会设置该复选框。
此外,您需要了解客户端 - 服务器流。如果客户端没有发送它,PHP无法检查。
最后,有人提到了jQuery。 jQuery是简单的javascript ,可能还有一些额外的糖。但问题是,理论上您可以使用jQuery更改内容,以便随请求提交(或不获取)。例如,你可以在提交表单之前让jQuery销毁复选框(在这种情况下不会发送复选框)。
答案 1 :(得分:2)
一些注意事项:
尽量避免使用SELECT *
个查询。选择您要使用的字段:
$ sql ='
选择
id
,
den_mag
从
magazine
“;
使用更好的变量名称。 $a
和$c
会让您的代码更难以为他人效仿,并且当您稍后再回来时也会为您自己。使用更具描述性的变量名称,例如$query_object
和$row
。你的代码应该读起来就像一篇描述你正在做的事情的文章。
在表单中,使用元素数组。通过为输入提供类似selected_magazines[]
的名称,您最终会在帖子数据中找到一个数组,这就是您想要的 - 多个选择
使用行ID作为复选框元素的值。 POST中的数组将是用户选择的所有ID的列表
将您的逻辑与HTML生成分开。脚本的顶部应该处理所有逻辑和决策。在底部,输出您的HTML并避免做出逻辑决策。它使脚本更易于遵循和维护,以及调试。
以下是将这些想法与您提供的详细信息相结合的示例脚本:
<?php
// FILE: myfile.php
mysql_connect("localhost","root","");
mysql_select_db("erp");
if(isset($_POST['selected_magazine'])) {
// $_POST['selected_magazine'] will contain selected IDs
print 'You selected: ';
print '<ul><li>'.implode($_POST['selected_magazine'], '</li><li>').'</li></ul>';
die();
}
$sql= '
SELECT
`id`,
`den_mag`
FROM
`magazine`
';
$query_object=mysql_query($sql);
$checkboxes = array();
while($row = mysql_fetch_array($query_object)) {
$checkboxes[] = '<input name="selected_magazine[]" value="'.$row['id'].'" type="checkbox" /> '.$row['den_mag'];
}
?>
<form action="myfile.php" method="post">
<?php print implode('<br>', $checkboxes); ?>
<input type="submit" value="Submit" />
</form>
答案 2 :(得分:1)
你走了:
<html>
<input name="test" value="true" type="checkbox" />
</html>
<?php
$Checkbox1 = "{$_POST['test']}";
if($Checkbox1 == 'true'){
// yes, it is checked
}
?>