您好,我希望您支持我的查询,如何根据所选数据在mysql的表中的多列中插入select option(combobox)php的值
例如,我有一个链接到嵌套组合框的提交表单,最后一个选择选项包含3个值: peras(pears), manzanas(apples), naranjas(oranges)
。如果选择值“pears”,则此值将插入到列id\u peras中,如果选择oranges,则此值将插入到列id\u naranjas中。这是我的代码直到现在:
这是我的mysql数据库表“frutas”
id |id_ciudad |id_colonia |id_participante |id_fruta
我希望这张table看起来像这样:
id |id_ciudad |id_colonia |id_participante |id_peras |id_manzanas |id_naranjas
索引.php
<div class="container">
<h1>
Seleccionar Participante
</h1>
<form id="frm-Participante" action="procesar.php" method="post" enctype="multipart/form-data">
<input type="hidden" name="id_jugador" />
<?php
//Include database configuration file
//Get all country data
$query = $db->query("SELECT * FROM ciudades ORDER BY nombre_ciudad ASC");
//Count total number of rows
$rowCount = $query->num_rows;
?>
<div class="form-group">
<label>Ciudad</label>
<select name="id_ciudad" id="Ciudad" class="form-control" >
<option value="">Seleccione la Ciudad</option>
<?php
if($rowCount > 0){
while($row = $query->fetch_assoc()){
echo '<option value="'.$row['id_ciudad'].'">'.$row['nombre_ciudad'].'</option>';
}
}else{
echo '<option value="">no hay ciudades</option>';
}
?>
</select>
</div>
<div class="form-group">
<label>Colonia</label>
<select name="id_colonia" id="Colonia" class="form-control" disabled="disabled">
<option value="">Seleccione la Colonia</option>
</select>
</div>
<div class="form-group">
<label>Participante</label>
<select name="id_participante" id="Participante" class="form-control" disabled="disabled">
<option value="">Seleccione el Participante</option>
</select>
</div>
<div class="form-group">
<label>Eleccion del Participante</label>
<select name="id_fruta" id="Fruta" class="form-control" disabled="disabled">
<option value="1">Peras</option>
<option value="2">Manzanas</option>
<option value="3">Naranjas</option>
</select>
</div>
<div class="upload-result text-center">
<button class="btn btn-success">Guardar</button>
</div>
</form>
</div>
</body>
<script>
$(document).ready(function(){
$("#frm-Participante").submit(function(){
return $(this).validate();
});
});
</script>
<script>
$('#Ciudad').change(function(){
$('#Colonia').removeAttr('disabled');
});
$('#Colonia').change(function(){
$('#Participante').removeAttr('disabled');
});
$('#Participante').change(function(){
$('#Fruta').removeAttr('disabled');
});
$(document).ready(function(){
$("#frm-Participante").submit(function(){
return $(this).validate();
});
});
</script>
<script type="text/javascript">
$(document).ready(function(){
$('#Ciudad').on('change',function(){
var CiudadID = $(this).val();
if(CiudadID){
$.ajax({
type:'POST',
url:'ajaxData.php',
data:'id_categoria='+CiudadID,
success:function(html){
$('#Colonia').html(html);
$('#Participante').html('<option value="">Seleccione el Colonia primero</option>')
$('#Participante').attr('disabled','disabled');
$('#Fruta').attr('disabled','disabled');
}
});
}else{
$('#Colonia').html('<option value="">Seleccione Ciudad primero</option>');
$('#Participante').html('<option value="">Seleccione Colonia primero</option>');
$('#Colonia').attr('disabled','disabled');
$('#Participante').attr('disabled','disabled');
$('#Fruta').attr('disabled','disabled');
}
});
$('#Colonia').on('change',function(){
var ColoniaID = $(this).val();
if(ColoniaID){
$.ajax({
type:'POST',
url:'ajaxData.php',
data:'id_colonia='+ColoniaID,
success:function(html){
$('#Participante').html(html);
}
});
}else{
$('#Colonia').html('<option value="">Seleccione Colonia primero</option>');
$('#Participante').attr('disabled','disabled');
$('#Fruta').attr('disabled','disabled');
}
});
});
</script>
程序.php
<?php
require_once'conexion.php';
include'funciones.php';
bd_agregar($_REQUEST);
//Cerramos conexión.
$cone->close();
?>
</body>
</html>
函数.php
<?php
require_once'conexion.php';
//Creamos función
function bd_agregar($temp){
//Especificamos variable global.
global $cone;
//Obtenemos datos formulario
$id_ciudad = $_REQUEST['id_ciudad'];
$id_colonia = $_REQUEST['id_colonia'];
$id_participante = $_REQUEST['id_participante'];
$id_fruta = $_REQUEST['id_fruta'];
//Insertamos datos
$cone->query("INSERT INTO frutas (id_ciudad,id_colonia,id_participante,id_fruta) VALUES ('$id_ciudad','$id_colonia','$id_participante','$id_fruta')");
echo $id_ciudad.$id_colonia.$id_jugador.$id_fruta;
}
//Comprobamos ejecución sentencia.
if ($cone===false) {
printf("Mensaje de error: %s\n", $cone->error);
} else {
echo "Los datos se insertaron correctamente";
}
?>
sql语句
CREATE TABLE IF NOT EXISTS `frutas` (
`id` int(20) NOT NULL AUTO_INCREMENT,
`id_ciudad` varchar(50) NOT NULL,
`id_colonia` varchar(50) NOT NULL,
`id_participante` varchar(50) NOT NULL,
`id_peras` varchar(30) NOT NULL,
`id_manzanas` varchar(30) NOT NULL,
`id_naranjas` varchar(30) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
COMMIT;
我试过用开关箱,但没有´数据未插入数据库
function bd_agregar($temp){
//Especificamos variable global.
global $cone;
//Obtenemos datos formulario
$id_ciudad = $_REQUEST['id_ciudad'];
$id_colonia = $_REQUEST['id_colonia'];
$id_participante = $_REQUEST['id_participante'];
$id_fruta = $_REQUEST['id_fruta'];
switch($id_fruta) {
case '1':
// Creas una variable que guarde la consulta con el nombre de columna id_peras
$sql = "INSERT INTO frutas (id_ciudad,id_colonia,id_participante,id_gol) VALUES ('$id_ciudad','$id_colonia','$id_participante','$id_fruta')";
break;
case '2':
// Creas una variable que guarde la consulta con el nombre de columna id_manzanas
$sql = "INSERT INTO frutas (id_ciudad,id_colonia,id_participante,id_amarilla) VALUES ('$id_ciudad','$id_colonia','$id_participante','$id_fruta')";
break;
case '3':
// Creas una variable que guarde la consulta con el nombre de columna id_naranjas
$sql = "INSERT INTO frutas (id_ciudad,id_colonia,id_participante,id_roja) VALUES ('$id_ciudad','$id_colonia','$id_participante','$id_fruta')";
break;
default:
echo "Valor erróneo"; die;
}
//Insertamos datos
// Pasamos la varriable $sql
$cone->query($sql);
echo $id_ciudad.$id_colonia.$id_participante.$id_fruta;
}
先谢谢你
1条答案
按热度按时间xurqigkl1#
首先,我建议您更改数据库设计。您可以使用enum('1','2','3'),而不是为selectbox的每种情况使用3个不同的列。然后您可以简单地将所选框的值插入到该列中。稍后,对于前端,您只需为每个值输出一个不同的字符串。也可以将字符串而不是数字添加到枚举中。