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的主要内容,如果未能解决你的问题,请参考以下文章

tidyverse:Chi Square适用于所有列的组合

python combos-timed.py

python combos.py

Video Game Combos [USACO2012]

洛谷 P3041 [USACO12JAN] Video Game Combos

P3041 [USACO12JAN]视频游戏的连击Video Game Combos