Cita:
Empezado por danielcornejo27
Hola, lo que yo estoy usando es APACHE, PHP y MySQL, si tenes algo de codigo para esto seria espectacular. Saludos
|
Bueno como te comento en mi anterior respuesta la parte cliente puedes verla tu mismo, no obstante te explico un poco como va el asunto...
inicialmente creas tu form con el primer selector, puedes hacerlo a estático o también dinámico, eso no cambia mucho, pensemos que el primero es estático, por tanto tenemos un form similar a esto...
Código PHP:
<form name="form">
<select id="select_categorias" name="categorias" onChange="buscaSubcategorias(this.value, 'span_subcategorias', 'select_subcategorias', true)" class="select">
<option value='0' selected>Selecciona una categoria</option>
<option value='1' >Bases de datos</option>
<option value='2' >Entornos de desarrollo</option>
<option value='3' >Web</option>
<option value='6' >Delphi</option>
<option value='7' >Herramientas</option>
<option value='8' >Software</option>
</select>
<span id="span_subcategorias"> </span>
</form>
function buscaSubcategorias( categoria, span, id, evento ) {
if (( categoria == 0 ) && ( id =='select_subcategorias' )) {
objeto( 'span_subcategorias' ).style.visibility ='hidden';
objeto( 'span_enlaces' ).innerHTML='';
return;
}
else {
objeto( 'span_subcategorias' ).style.visibility ='visible';
}
objeto( 'span_inserta_un_enlace' ).style.visibility='hidden';
solicitando( span );
ajax = nuevoAjax();
ajax.open('POST', 'respuesta-subcategorias.php', true );
ajax.onreadystatechange = function() {
if ( ajax.readyState == 4 ) {
objeto( span ).innerHTML = ajax.responseText;
}
}
ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
if ( evento ) { evento='SI'; }
ajax.send( 'categoria=' + categoria + '&span='+span + '&id='+id + '&evento='+evento );
}
// Para no repetir insaciablemente document.getElementById
function objeto( id ) {
return document.getElementById( id );
}
// Constructor de objetos Ajax
function nuevoAjax(){
var xmlhttp=false;
try {
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (E) {
xmlhttp = false;
}
}
if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
xmlhttp = new XMLHttpRequest();
}
return xmlhttp;
}
Y en la parte del servidor como ya te dije unicamente hacemos la consulta y devolvemos el resultado.
Código PHP:
$categoria = $_POST["categoria"];
$id = $_POST["id"];
$evento = $_POST["evento"];
if ( $evento =='SI' ) {
$evento = 'onChange="buscaEnlaces(this.value)"';
}
$sql = "SELECT * FROM enlaces_scat WHERE id_enlaces_cat =$categoria";
$result = db_query( $sql );
// Creamos el select de subcategorias.
$respuesta = '<select id="'.$id.'" name="'.$id.'" '.$evento.' class="select">';
$respuesta .= '<option value="">Selecciona una subcategoria</option>';
while ( $row = mysql_fetch_array( $result ) ) {
$respuesta .= '<option value="'.$row["enlaces_scat_id"].'">'.$row["sc_nombre"].'</option>';
}
$respuesta .='</select>';
echo $respuesta;