Foros del Web » Programando para Internet » PHP »

Crear tantos textbox como indique la opcion elegida en una lista select

Estas en el tema de Crear tantos textbox como indique la opcion elegida en una lista select en el foro de PHP en Foros del Web. ola a todos estoy en medio de un proyecto, y necesito ayuda, de antemano gracias a todo aquel me la preste, mi problema es que ...
  #1 (permalink)  
Antiguo 22/05/2007, 03:15
 
Fecha de Ingreso: mayo-2007
Mensajes: 13
Antigüedad: 16 años, 11 meses
Puntos: 0
Pregunta Crear tantos textbox como indique la opcion elegida en una lista select

ola a todos estoy en medio de un proyecto, y necesito ayuda, de antemano gracias a todo aquel me la preste, mi problema es que tengo una lista desplegable con num del 0 al 10:

<td colspan="6"><div align="center">Nº Cursos
<select size="1" name="num_cursos">
<option value="" selected>Elige opción...</option>
<?php $i=0;while($i<11){echo '<option value='.$i.'>'.$i.'</option>';$i++;}?>
</select></div></td>

lo que me gustaria es saber como puedo hacer para que según la opcion que eliga el usuario en la lista aparezcan ese numero de cajas de texto. Por favor ayuda
  #2 (permalink)  
Antiguo 22/05/2007, 06:10
 
Fecha de Ingreso: abril-2007
Mensajes: 54
Antigüedad: 17 años
Puntos: 1
Re: Crear tantos textbox como indique la opcion elegida en una lista select

Usando AJAX.

Con el value de la drop down list le pasas por parametro en la direccion y que te cargue los que necesites.

Trabaja con este ejemplo

w3schools.com/ajax/ajax_source.asp
  #3 (permalink)  
Antiguo 22/05/2007, 09:09
 
Fecha de Ingreso: mayo-2007
Mensajes: 13
Antigüedad: 16 años, 11 meses
Puntos: 0
Re: Crear tantos textbox como indique la opcion elegida en una lista select

Gracias, pero la verdad es que no se nada de ajax, si pudieras darme el ejemplo en español o alguna codigo que me sirviera te lo agradeceria.

Un saludo
  #4 (permalink)  
Antiguo 22/05/2007, 09:51
Avatar de .php  
Fecha de Ingreso: julio-2006
Mensajes: 481
Antigüedad: 17 años, 9 meses
Puntos: 5
Re: Crear tantos textbox como indique la opcion elegida en una lista select

te voy ayudar.
este es un ejemplo <? echo ?> en ajax, es facil solo copia y pega. (ctrl+c y ctrl+v)

pagina 1: main.php
Código HTML:
<script language="JavaScript" type="text/javascript">
function Ajax(){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;
}
function textos (valor){
var ajax=Ajax();
  	var Variables		=	"";
  	var url				=	"textos.php?";
  	var	capaContenedora	=	document.getElementById("text");
	var num_cursos		=	"num_cursos="+valor.value;
     ajax.open ('POST', url+num_cursos, true);
     ajax.onreadystatechange = function() {
     if (ajax.readyState==1) {
		capaContenedora.disabled=true;
     	capaContenedora.innerHTML="Cargando.......";
     }else if (ajax.readyState==4){
     	if(ajax.status==200){
        	capaContenedora.innerHTML	=	ajax.responseText;
        	capaContenedora.disabled	=	false;
        }else if(ajax.status==404){
			capaContenedora.innerHTML 	= "La direccion no existe";
		}else{
			capaContenedora.innerHTML 	= "Error: ".ajax.status;
		}
	}
	}
	ajax.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	ajax.send(num_cursos);
	return;
}
</script>

<td colspan="6"><div align="center">Nº Cursos
<select size="1" name="num_cursos" onchange="textos(this);">
<option value="" selected>Elige opción...</option>
<?php $i=0;while($i<11){echo '<option value='.$i.'>'.$i.'</option>';$i++;}?>
</select></div></td>

<div id="text"></div> 
pagina 2: textos.php
Código PHP:
<?
echo $j    =    $_POST["num_cursos"];
$i    =    0;
echo 
"<table>";
while(
$i<$j){
    echo 
'<tr><td><input type=text></td></tr>';
    
$i++;
}
echo 
"</table>";
?>

espero que te ayude.
__________________
~~[FiDeLio]~~
  #5 (permalink)  
Antiguo 22/05/2007, 10:11
 
Fecha de Ingreso: mayo-2007
Mensajes: 13
Antigüedad: 16 años, 11 meses
Puntos: 0
Re: Crear tantos textbox como indique la opcion elegida en una lista select

Gracias de nuevo por tu ayuda, he probdo tu ejemplo en paginas apartes a la que estoy creando para mi proyecto y el ejemplo funciona perfectamente, pero cuando lo pongo en la pagina de mi proyecto me sale el tringulito amarillo en el explorer en la esquina izq y dice error desconocido, si me puedes ayudar te lo agradecere
  #6 (permalink)  
Antiguo 22/05/2007, 10:37
Avatar de .php  
Fecha de Ingreso: julio-2006
Mensajes: 481
Antigüedad: 17 años, 9 meses
Puntos: 5
Re: Crear tantos textbox como indique la opcion elegida en una lista select

quisas debe ser por esto:
a tu pagina donde esta el select aparte de agragar el javascript debes colocar el div donde quieres que aparezca la tabla con los textos
Código HTML:
<div id="text"></div> 
__________________
~~[FiDeLio]~~
  #7 (permalink)  
Antiguo 22/05/2007, 11:01
 
Fecha de Ingreso: mayo-2007
Mensajes: 13
Antigüedad: 16 años, 11 meses
Puntos: 0
Re: Crear tantos textbox como indique la opcion elegida en una lista select

esa parte tb la he copiado, perdona el error es: error desconocido en tiempo de ejecucion, yo tengo varias funciones javascript creadas por mi crees q deberia poner la de tu codigo aparte???
  #8 (permalink)  
Antiguo 22/05/2007, 11:01
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Re: Crear tantos textbox como indique la opcion elegida en una lista select

Yo creo no es necesario usar ajax para eso puedes usar el Javascript DOM directamente y te ahorras un request a tu server:
Código:
<script type="text/javascript">
function createTexts(sel) {
    var num = sel.value;
    if( !num ) num = sel.options[sel.selectedIndex].value;
    if( !num ) return;

    var html="<input type=\"text\" name=\"caja_de_texto[]\" />";
    num = parseInt( num );
    var dest = document.getElementById("cajas");
    for( i = 0; i < num; i++ ) {
         dest.innerHTML += html;
    }
}
</script>
<select name="pull" onchange="createTexts(this)">
<option value="1">1</option>
<option value="10">10</option>
</select>
<div id="cajas"></div>
  #9 (permalink)  
Antiguo 22/05/2007, 12:06
Avatar de .php  
Fecha de Ingreso: julio-2006
Mensajes: 481
Antigüedad: 17 años, 9 meses
Puntos: 5
Re: Crear tantos textbox como indique la opcion elegida en una lista select

bueno, si no lo quieres hacer con ajax,
hazlo con php, tambien es facil
Código PHP:

<form name="form1" method="POST">
<td colspan="6"><div align="center">Nº Cursos
<select size="1" name="num_cursos" onchange="submit()">
<option value="" selected>Elige opción...</option>
<?php $i=0;while($i<11){echo '<option value='.$i.'>'.$i.'</option>';$i++;}?>
</select></div></td>
<?
if($_POST["num_cursos"]!=""){
    
$j    =    $_POST["num_cursos"];
    
$i    =    0;
    echo 
"<table>";
    while(
$i<$j){
        echo 
'<tr><td><input type=text></td></tr>';
        
$i++;
    }
    echo 
"</table>";
}
?>
</form>
__________________
~~[FiDeLio]~~
  #10 (permalink)  
Antiguo 22/05/2007, 13:45
 
Fecha de Ingreso: mayo-2007
Mensajes: 13
Antigüedad: 16 años, 11 meses
Puntos: 0
Re: Crear tantos textbox como indique la opcion elegida en una lista select

Gracias ambos por la ayuda prestada, .php on php solo hay esa forma? yo no quiero tener que mandar el formulario, GatorV tu opcion es la mas parecida a lo que busco, xo he añadido esto a tu codigo me gustaria que apareciense uno debajo del otro pero no lo consigo

var html1="<tr>";
var html2="<td colspan=\"2\">";
var html3="<input type=\"text\" name=\"nomcursos[]\" />";
var html4="</td>";
var html5="</tr>";
num = parseInt( num );
var dest = document.getElementById("cajas");
for( i = 0; i < num; i++ ) {
dest.innerHTML += html1;
dest.innerHTML += html2;
dest.innerHTML += html3;
dest.innerHTML += html4;
dest.innerHTML += html5;
}

Gracias a ambos de verdad, es normal que este se de los mejores foros sobre programacion y demas.
  #11 (permalink)  
Antiguo 22/05/2007, 14:16
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Re: Crear tantos textbox como indique la opcion elegida en una lista select

Prueba agregandole un <br> al final del input, asi forzas a que se baje
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 11:25.