dpn4073 2014-04-24 02:11
浏览 45
已采纳

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

I have a form that is spread over 2 pages.

Step 1 is to search for dublicate in the database if there are no dublicates.. you'll be sent to the second page. And in the second page what you've searched for is in a disabled form input. so that you cant edit it. But the problem is that this input wont be submitted to the database and i get an error.

PAGE 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>
     "; 
}
}
?>

Page 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();
?>

EDIT: Added 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;
}
?>

I keep getting an error that the form is empty. What am i doing wrong? Thanks.

  • 写回答

1条回答 默认 最新

  • dongtan6206 2014-04-24 03:36
    关注
    <input id="disabled" name="SkoleNavn" type="text" value="<?php echo $_POST['SkoleNavn']; ?>" class="form-control input-md" disabled>
    

    dont use "disable" attribute, use "readonly" attribute instead.

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

    $_POST will get nothing from input have disable attribute so if (isset()) in ur Check_input.php file gonna past into $SkoleNavn = "";

    also change all your $_Post var like this to prevent query error 'cause of special char as '. If get some query error, success message still print but add nothing to your database

    $persNavn       = str_replace("'","''",$_POST['persNavn']);
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥65 汇编语言除法溢出问题