PHP表单,复选框不插入数据

时间:2014-07-15 19:49:56

标签: javascript php html mysql css

我在尝试提交此表单时遇到了一个问题,隐藏的复选框标记为文本。我使用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']."");
}

问题:

此表单无效。这意味着它不会将数据存储到我的表中,最终也不会重定向到任何位置。

有什么问题?

2 个答案:

答案 0 :(得分:0)

一些事情。

  1. 首先,当您使用insert时,最好继续并为查询提供列名。如果您的行计数已关闭,则查询将失败。
  2. 从你所展示的内容来看,如果有的话,你没有任何内容可以解决mysql查询错误。而且它有时不重定向这一事实表明存在错误(mysql_query返回false,这是失败,所以$ query1 == false)。你应该调用mysql_error()函数。
  3. 不推荐使用mysql_ *。你应该切换到mysqli _ *。

  4. 这看起来是语法错误:

    if (isset($_POST['ajfarebne'])){ $ajfarebne=1; else $ajfarebne=0;
    
  5. 您应该将其更改为三元,或修复大括号。

答案 1 :(得分:0)

尝试mysqli_query同时确保您已连接到数据库,然后执行此操作:

if (mysqli_query($con, "INSERT... ")){
  ... //code here

}

祝你好运!