我的项目中有两个用于学生事件的表格。 (一个表(名称:evidall),我存储我的主题(在我的代码中,它们是名为“predmet”的外语),我还有另一个表(名称:evid_record),其中我有一个脚本来放入有关学生的数据和我有一个下拉列表,它从第一个表(evidall)中提取主题的名称。我设法将数据拉到下拉列表中,但是当我在下拉列表中选择任何主题时,它不会将其保存到第二个表中表(evid_record)。我已经尝试了好几天了,我真的不知道我做错了什么。我在网上找到的所有内容都是针对写在下拉列表中的直接值,但我的情况有点比这更具体..
这是我的 DDL 和表单的代码:
<body>
<div class="forma">
<form action="snimipodatkestud.php" method="Post">
<fieldset>
<span class="FieldInfo">Ime:</span><br><input type="text" name="imes" value=""><br>
<span class="FieldInfo">Prezime:</span><br><input type="text" name="prezimes" value=""><br>
<span class="FieldInfo">Broj indeksa: </span><br><input type="text" name="indeksbr" value=""><br>
<span class="FieldInfo">Predmet: <br>
<select name="zpredmet">
<option>Choose one..</option>
<option name="izpredmet" value="
<?php
$ViewQuery="SELECT epredmet FROM evidall";
$Execute= mysqli_query($connection, $ViewQuery);
while($datarows=mysqli_fetch_array($Execute)){
echo "<option value=\"\">" . $datarows['epredmet'] . "</option>";
}
?>" ></option>
<br></select><br>
<span class="FieldInfo">Teorija kolokvijum:</span><br><input type="text" name="teorija" value=""><br>
<span class="FieldInfo">Zadaci kolokvijum: </span><br><input type="text" name="zadaci" value=""><br>
<span class="FieldInfo">Aktivnost: </span><br><input type="text" name="akt" value=""><br>
<span class="FieldInfo">Prisustvo: </span><br><input type="text" name="pris" value=""><br>
<span class="FieldInfo">Seminarski rad: </span><br><input type="text" name="semrad" value=""><br>
<span class="FieldInfo">Domaci rad: </span><br><input type="text" name="domrad" value=""><br>
<div class="klgg">
<br><input type="submit" name="submit" value="Upisi"><br>
</div>
<br><?php echo $NEuspehupis; ?><br>
<br><?php echo $uspehupis; ?><br>
</fieldset>
</form>
</div>
</body>
这是插入部分:
<?php include("konekcija.php");?>
<?php
global $connection;
global $uspehupis;
global $NEuspehupis;
$ime = $prezime = $izpredmet = $teorija = $zadaci = $akt = $pris = $semrad = $domrad = $indeksbr = "";
if(isset($_POST["submit"])){
if(!empty($_POST["imes"]) && !empty($_POST["indeksbr"])){
$ime= $_POST["imes"];
$prezime= $_POST["prezimes"];
$indeksbr= $_POST["indeksbr"];
$izpredmet= $_POST["izpredmet"];
$teorija= $_POST["teorija"];
$zadaci= $_POST["zadaci"];
$akt = $_POST["akt"];
$pris= $_POST["pris"];
$semrad= $_POST["semrad"];
$domrad= $_POST["domrad"];
$query= "INSERT INTO evid_record(imes,prezimes,indeksbr, predmet, teorija, zadaci, akt, pris, semrad, domrad)
VALUES ('$ime', '$prezime','$indeksbr','$izpredmet', '$teorija', '$zadaci', '$akt', '$pris', '$semrad', '$domrad')";
$execute=mysqli_query($connection, $query);
if($execute){
$uspehupis = "<div class='alert alert-success alert-dismissible'>
<a href='#' class='close' data-dismiss='alert' aria-label='close'>×</a>
<strong>Registracija uspesna!</strong></div>";
}
}
else{
$NEuspehupis = "<div class='alert alert-danger fade in alert-dismissible'>
<a href='#' class='close' data-dismiss='alert' aria-label='close'>×</a>
<strong>Morate uneti ime,prezime, email i sifru!</strong></div>";
}
$query1 ="UPDATE evid_record SET `ukupno` = (teorija + zadaci + akt + pris + semrad + domrad)";
$execute1=mysqli_query($connection, $query1);
}
?>
最佳答案
有几个问题:
1) $izpredmet= $_POST["izpredmet"];
...但在你的形式中你有 <select name="zpredmet">
。名称不匹配,因此 $_POST["izpredmet"]
;永远不会包含任何值(value)。
2) <option name="izpredmet"
无效 - 各个选项没有名称,它们不是表单字段,因此从此处删除“名称”属性
3) <option value=\"\"
您将选项的所有值设置为空白,因此即使您正确提交字段,也不会提供任何值 - 表单将提交一个空字符串作为所选值。您需要在选项的“value”属性中设置合适的值。如果您没有单独的 ID 用作值,则可以直接编写
echo "<option value=\"".$datarows['epredmet']."\">" . $datarows['epredmet'] . "</option>";
关于php - 将下拉列表中的值从另一个表插入数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54774862/