传递变量不会提交到数据库(PHP)

时间:2014-04-24 02:11:15

标签: php mysql forms

我的表格分为2页。

步骤1是在数据库中搜索dublicate,如果没有dublicates ..您将被发送到第二页。在第二页中,您搜索的是禁用的表单输入。所以你不能编辑它。但问题是这个输入不会被提交到数据库,我得到一个错误。

第1页:

    <form class="form-horizontal" id="form" method="POST">
    <fieldset>
<!-- Appended Input-->
<div class="form-group">
  <div class="col-md-12">
    <div class="input-group">
    <input type="search" id="hiddenField" name="SkoleNavn" class="form-control input-lg" placeholder="f.eks. Aarhus Universitet" required="">
    <span class="input-group-btn">
    <button class="btn btn-primary btn-lg ladda-button" data-style="zoom-out" data-size="l" type="submit"><span class="ladda-label glyphicon glyphicon-search"></span></button>
    </span>
    </div>
</div> 
</div>
    </fieldset>
</form>     
<?php
if(isset($_POST['SkoleNavn'])) {
if ( $schoolExist ) {

echo "";
}

else {

echo "<form action=\"http://localhost/Vurderskole/add-step2.php\" method=\"POST\">
      <input id=\"SkoleNavn\" name=\"SkoleNavn\" type=\"hidden\" value=\"$SkoleNavn\" class=\"form-control input-md\">
      <button class=\"btn btn-primary btn-lg ladda-button\" data-style=\"zoom-out\" data-size=\"l\" type=\"submit\">Tilføj $SkoleNavn</button>
      </form>
     "; 
}
}
?>

第2页:

    <!-- Navn -->
<div class="form-group">
  <label class="col-md-4 control-label" for="SkoleNavn">Skole Navn</label>  
  <div class="col-md-4">
  <input id="disabled" name="SkoleNavn" type="text" value="<?php echo $_POST['SkoleNavn']; ?>" class="form-control input-md" disabled>
  </div>
</div>

Input.php

<?php
$host="localhost"; // Host name 
$username="root"; // Mysql username 
$password=""; // Mysql password 
$db_name="**********"; // Database name 
$tbl_name="*********"; // Table name 

// Connect to server and select database.
mysql_connect("$host", "$username", "$password")or die("cannot connect"); 
mysql_select_db("$db_name")or die("cannot select DB");

// Get values from form 
$persNavn       = $_POST['persNavn'];
$persMail       = $_POST['persMail'];
$persTel        = $_POST['persTel'];
$SkoleNavn      = $_POST['SkoleNavn'];
$SkoleAdresse   = $_POST['SkoleAdresse'];
$SkoleBy        = $_POST['SkoleBy'];
$SkolePostNr    = $_POST['SkolePostNr'];


// Insert data into mysql 
$sql="INSERT INTO $tbl_name(SkoleNavn, persNavn, persMail, persTel, skoleAdresse, skolePostNr, skoleBy) VALUES
                           ('$SkoleNavn','$persNavn','$persMail','$persTel','$SkoleAdresse','$SkolePostNr','$SkoleBy')";
$result=mysql_query($sql);

// if successfully insert data into database, displays message "Successful". 
if($result){
echo "Tak For Din Ansøgning - Du vil modtage en mail på om din ansøgning er godkendt eller ej.";
}

else {
echo "Der er desværre sket en fejl. Prøv igen eller kontakt os for yderligere hjælp.";
}
?> 

<?php 
// close connection 
mysql_close();
?>

编辑:添加了Check_input.php

    <?php

if(isset($_POST['SkoleNavn']))
{
    $SkoleNavn = $_POST['SkoleNavn'];
} else {
    $SkoleNavn = "";
}

$res = mysql_query("SELECT * FROM school WHERE SkoleNavn='{$SkoleNavn}'");
if (!$res) {
    die("error! " . mysql_error());
}

if (mysql_num_rows($res)) {
    $schoolExist = true;
} else {
    $schoolExist = false;
}
?>

我一直收到表单为空的错误。我究竟做错了什么?感谢。

1 个答案:

答案 0 :(得分:0)

<input id="disabled" name="SkoleNavn" type="text" value="<?php echo $_POST['SkoleNavn']; ?>" class="form-control input-md" disabled>

不要使用“禁用”属性,而是使用“readonly”属性。

<input id="disabled" name="SkoleNavn" type="text" value="<?php echo $_POST['SkoleNavn']; ?>" class="form-control input-md" readonly/>

$ _ POST将从输入中获取没有任何内容的禁用属性,所以if(isset())在你的Check_input.php文件中会过去$ SkoleNavn =“”;

还会像这样更改所有$ _Post var,以防止查询错误'特殊字符'的原因为'。如果获得一些查询错误,则仍会打印成功消息但不向数据库添加任何内容

$persNavn       = str_replace("'","''",$_POST['persNavn']);