我有一个将车辆添加到数据库的表单,表单中有 2 个下拉选择字段,“品牌”和“型号”
当我从任一选项中选择一个选项将其插入数据库中的库存表时,品牌“ID”或型号“ID”将插入车辆品牌/型号中,而不是车辆品牌的名称,因此“3” ' 被插入而不是 'Volkswagen'
这是我的一些代码
<form action="addstock.php" method="post" enctype="multipart/form-data">
<div class="make">
<div id="field1">Make:</div> <div id="field2">
<select name="mke" id="mke">
<?php
include 'includes/db2.php';
$SQL = "SELECT * FROM make";
$query = mysqli_query($con, $SQL);
while ($row = mysqli_fetch_array($query)) {
$res = "<option ";
$res .= "value='".$row['code']."'>";
$res .= $row['vehicle_make'];
$res .= '</option>';
echo $res;
}
?>
</select>
</div>
</div>
</div>
<script src="jquery/jquery-2.1.4.min.js"></script>
<script>
$(document).ready(function(){
$('#mke').change(function(){
var code = $(this).val();
var data = 'code='+code;
$.ajax({
type : "POST",
url : "fill.php",
data : data,
cache: false,
success: function(html)
{
$('#mdl').html(html);
}
});
});
});
</script>
模型下拉选项的代码,其余代码位于另一个页面(fill.php)
<div id="field1">Model:</div> <div id="field2">
<select name="mdl" id="mdl">
<option selected="selected">Model</option>
</select>
</div>
</div>
fill.php页面
if(isset($_POST['code']))
{
$SQL = "SELECT * FROM model WHERE MakeCode = '".$_POST['code']."'";
$query = mysqli_query($con, $SQL);
if(mysqli_num_rows($query) == 0 )
{
echo '<option>No Results</option>';
} else {
while ($row = mysqli_fetch_array($query)) {
$res = "<option ";
$res .= "value='".$row['id']."' >";
$res .= $row['vehicle_model'];
$res .= "</option>";
echo $res;
}
}
} else {
echo '<option >error</option>';
}
?>
返回addstock.php页面,这里是插入代码
<?php
if(isset($_POST['addstock'])){
$mke = $_POST['mke'];
$mdl = $_POST['mdl'];
$addstock = "insert into stock (veh_make,veh_model) values('$mke','$mdl')";
$addsto = mysqli_query($con, $addstock);
if($addsto){
echo "<script>alert('Vehicle has been added')</script>";
echo "<script>window.open('addstock.php','_self')</script>";
}
}
我对 php 相当陌生,不知道如何插入名称而不是 ID,因为当我尝试在另一个页面上显示车辆时,ID 显示为 3 4,而不是大众高尔夫
希望你明白我的意思
非常感谢任何帮助!
最佳答案
您可以插入 SELECT 语句的结果来获取品牌和型号:
"insert into stock (veh_make,veh_model) select make.vehicle_make, vehicle_model FROM make, model WHERE make.id=$mke AND model.id=$mdl"
但这是错误的数据库设计。 stock
不应包含品牌和型号名称,而应包含 ID、对其他表中的行的引用或外键。
关于php - 将选择表单的值插入mysql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34757980/