【发布时间】:2014-07-15 19:49:56
【问题描述】:
我在尝试提交此表单时遇到了一个问题,其中隐藏了由文本标记的复选框。我使用 CSS 而不是 JavaScript 来显示/隐藏内容,我需要这样做。
<form method="post" action="" class="table_info3_form1">
<h3>Materialy</h3>
Materialy: <input type="text" name="materialy">
<label class="collapse" for="ajfarebne"><b>Aj farebne materialy ?: (click)</b></label>
<input id="ajfarebne" type="checkbox" name="ajfarebne">
<div>Menia sa farby pravidelne, alebo len obcas ?<input type="text" name="meniasa"/></div><br>
PC a PMMA: <input type="text" name="pcapmma">
<br>Iny transparentny material: <input type="text" name="inytransparentny"><br>
Frekvencia cistenia strojov: <input type="text" name="frekvencia"><br>
Najvacsi problem pri cisteni: <input type="text" name="najvacsiproblem"><br>
</form>
使用这个 css(我添加这个,因为它是显示/隐藏工作所必需的):
.collapse{
display:block;
}
.collapse + input{
display:none;
}
.collapse + input + *{
display:none;
}
.collapse+ input:checked + *{
display:block;
}
而php代码是这样的(我将数据存储在这样的变量中):
if(isset($_POST['submit']))
{
$materialy=mysql_real_escape_string($_POST['materialy']);
$meniasa=mysql_real_escape_string($_POST['meniasa']);
... more variables
if(isset($_GET['qs']))
{
$id = $_GET['qs'];
if (isset($_POST['ajfarebne'])){ $ajfarebne=1; else $ajfarebne=0; //defining my checkbox variable value
然后我将值插入数据库:
$query1=mysql_query("INSERT INTO properties3 VALUES('', '$materialy', '$ajfarebne', '$meniasa'... more variables
然后我重定向:
if($query1)
{
$query1=mysql_query("select idfirma3 from properties3 where idfirma3='$id'");
$query4=mysql_fetch_array($query1);
header("location:../firma/firma-properties.php?id=".$query4['idfirma3']."");
}
问题:
这个表格什么都不做。这意味着它不会将数据存储到我的表中,最终也不会重定向到任何位置。
怎么了?
【问题讨论】:
-
在伤害自己之前,您真的需要停止使用过时的
mysql_query。你完全忽略了重要的escaping concerns,并将自己暴露在一个充满痛苦和苦难的世界中,因为这充满了SQL injection bugs。切换到 PDO 等现代界面并使用数据占位符,除非您有充分的理由不这样做。 -
在起始页使用 print_r($_POST);此说明打印您在表格中发布的所有数据,以便您查看收到的内容。享受您的代码
-
我现在开始工作了,我正在对我的代码进行现代化改造。我有一个问题:我确实有这个系统的登录页面,所以必须登录才能访问这些数据。仍然不使用 PDO 是不是一个大问题?
标签: javascript php html mysql css