PHP Combos依赖于xOxo的结果anteriores
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP Combos依赖于xOxo的结果anteriores相关的知识,希望对你有一定的参考价值。
== HTML + jQuery==
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Combos dependientes del resultado anterior by xOxo</title>
<script language="javascript" src="js/jquery-1.3.2.js"></script>
<script language="javascript">
$(document).ready(function(){
// Parametros para e combo1
$("#paso2").css('display', 'none');
$("#paso3").css('display', 'none');
$("#paso4").css('display', 'none');
$("#combo1").change(function () {
$("#combo1 option:selected").each(function () {
seleccionado=$(this).val();
$.post("prueba.php?mod=vehiculo", { seleccionado: seleccionado }, function(data){
$("#combo2").html(data);
$("#paso2").css('display', '');
$("#combo3").html("");
});
});
})
// Parametros para el combo2
$("#combo2").change(function () {
$("#combo2 option:selected").each(function () {
seleccionado=$(this).val();
$.post("prueba.php?mod=marca", { seleccionado: seleccionado }, function(data){
$("#paso3").css('display', '');
$("#paso4").css('display', '');
$("#combo3").html(data);
});
});
})
});
function grabar () {
combo1 = document.getElementById('combo1').value;
combo2 = document.getElementById('combo2').value;
combo3 = document.getElementById('combo3').value;
alert("El resultado es:\n\n" + combo1 + "\n" + combo2 + "\n" + combo3 + "\n\nEjemplo by xOxo");
}
</script>
<link href="style.css" rel="stylesheet" type="text/css" />
</head>
<body>
<form action="/agregar-a-basededatos/" method="post" onsubmit="grabar(); return false;">
<div class="ejemplo">
<ul>
<li>Tipo de vehiculo:</li>
<li><select name="combo1" id="combo1">
<option value="x">Seleccione</option>
<option value="auto">Auto</option>
<option value="pickup">Pick up</option>
<option value="312toneladas">3 1/2 toneladas</option>
</select>
</li>
</ul>
<ul id="paso2">
<li>Marca:</li>
<li><select name="combo2" id="combo2">
</select>
</li>
</ul>
<ul id="paso3">
<li>Modelo:</li>
<li><select name="combo3" id="combo3">
</select>
</li>
</ul>
<ul id="paso4">
<li></li>
<li>
<input type="submit" value="Grabar" />
</li>
</ul>
</div>
</form>
</body>
</html>
== CSS ==
@charset "utf-8";
.ejemplo{
font-family:Verdana, Arial, Helvetica, sans-serif;
font-size:11px;
font-weight:bold;
width: 100%;
}
.ejemplo ul{
padding: 6px 0 7px 0;
margin: 0;
text-align: left;
}
.ejemplo ul li{
display: inline;
}
.ejemplo ul li a{
color: #494949;
padding: 6px 3px 4px 3px;
margin-right: 20px;
text-decoration: none;
border-bottom: 3px solid gray;
}
.ejemplo ul li a:hover, .ejemplo ul li a.selected{
border-bottom-color: black;
}
== PHP (CONTROLADOR) ==
<?php
include 'classes/query.php';
$consultas = new consultas();
if ($_GET['mod'] == 'vehiculo') {
echo $consultas->vehicles($_POST["seleccionado"]);
}
if ($_GET['mod'] == 'marca') {
echo $consultas->marca($_POST["seleccionado"]);
}
?>
== PHP (MODELO) ==
<?php
class consultas {
private function options_values ($array) {
$output = "<option value=''>Seleccione</option>";
if (is_array($array)) {
for ($i = 0; $i<sizeof($array); $i++) {
$output .='<option value="' . $array[$i] . '">' . $array[$i] . '</option>';
}
} else {
$output .='<option value="">-------</option>';
}
return $output;
}
public function vehicles ($param) {
// query de autos o algun otro vehÃ�ÂÂculo
// asi quedaria el output
if ($param == 'auto') {
$names = array("Astra","Chevy","Pointer","Tsuru");
} elseif ($param == 'pickup') {
$names = array("Jeep","Titan","Cayenne","Lobo");
} elseif ($param == '312toneladas') {
$names = array("Maxtor","Titanx3","Kenwood");
}
return $this->options_values($names);
}
public function marca ($param) {
// query de marcas
// asi quedaria el output
if ($param == 'Astra') {
$names = array("2005","2006","2007","2008");
} elseif ($param == 'Chevy') {
$names = array("1999","2000","2001","2002");
} elseif ($param == 'Pointer') {
$names = array("2004","2005","2006");
}
return $this->options_values($names);
}
}
?>
以上是关于PHP Combos依赖于xOxo的结果anteriores的主要内容,如果未能解决你的问题,请参考以下文章