我无法根据选择的选项插入值。因此,如果从下拉列表中选择下面的Type1,则键入2.如果选择了类型2,则会出现错误/甚至尝试在选择类型2时保持空值但仅出现错误。当选择类型1时,插入数据。
include_once('db.php');
if(isset($_POST['submit'])) {
$id = mysqli_real_escape_string($db ,$_POST['id']);
$Type = mysqli_real_escape_string($db ,$_POST['type']);
$Date = mysqli_real_escape_string($db ,$_POST['date']);
$Treat = mysqli_real_escape_string($db ,$_POST['treat']);
if($Type=="1")
{
$sql= "INSERT INTO set1(id,type,date,Treat)
VALUES('$id','$Type','$Date','$Treat')";
$query = mysqli_query($db, $sql) or die(mysqli_error($db));
if(!$query)
echo "You have to fill all values";
else
echo "successfully inserted";
}
else
{
$sql= "INSERT INTO set1(id, type, date)
VALUES('$id', '$Type', '$Date')";
$query = mysqli_query($db, $sql);
if(!$query)
echo mysqli_error();
else
//echo "successfully inserted";
echo"<script> alert('Data inserted Successfully'); window.close(); window.opener.location.reload(true);</script>";
}
}
?>
答案 0 :(得分:0)
未定义的索引:对待这意味着
1 - name="treat"
未在您的html中定义
2 - 你的HTML应该是这样的
<input type="text" name="treat">
并更改以下
if(Type=="1")
{
与
if($Type==1)
{
你的完整HTML
<td class="desc" width="46%" align="right">Treat</td>
<td class="desc2" width="54%" align="left">
<span class="desc1">
<select name="treat" style="width:36mm">
<option value="">Select</option>
<?php
$sql = "SELECT treat FROM add_treat ORDER BY treat " ;
$result = mysqli_query($db,$sql);
while ($row = mysqli_fetch_array($result)) { ?>
<option value="<?php echo $row['treat']; ?>"></option><?php echo $row['treat']; ?></option>
<?php }
?>
</select>
答案 1 :(得分:0)
是的,您需要eval $ Type而不是Type(可能是保留字,如果是,则总是计算为false)。可能只处理你的第二个$ sql查询。
一旦你得到eval语句,然后仔细检查第一个$ sql字符串:
"INSERT INTO set1(id,type,date,Treat)
VALUES('$id','$Type','$Date','$Treat',)"
不是有效的SQL语句 - 最后有一个额外的逗号