Foros del Web » Programando para Internet » Javascript »

Ayuda con aplicación

Estas en el tema de Ayuda con aplicación en el foro de Javascript en Foros del Web. RESUELTO Buenas gente!, estoy haciendo algunos trabajos en los que empleo PHP y MySQL, y para solucionar algunas cuesiones me parece interesante utilizar Javascript, el ...
  #1 (permalink)  
Antiguo 30/08/2009, 17:23
 
Fecha de Ingreso: abril-2006
Mensajes: 95
Antigüedad: 18 años
Puntos: 0
[Resuelto] Ayuda con aplicación

RESUELTO

Buenas gente!, estoy haciendo algunos trabajos en los que empleo PHP y MySQL, y para solucionar algunas cuesiones me parece interesante utilizar Javascript, el tema es que no lo conosco mucho, aunque no se me hace dificil interpretarlo (trabajé mucho con C y conozco PHP).

Mi aplicacion es una prueba, como para familiarizarme, lo que pretendo hacer, es pasarle el texto de la opción de un menú, a una caja de texto.

El código que pretendo hacer funcionar jeje:

Código HTML:
<head>
<script language="javascript">
function actualizaTexto(opcion)
{
	document.forms.form1.opcion.disabled = true;
	document.forms.form1.texto.disabled = true;
	CargarPropiedades(opcion);
	document.forms.form1.opcion.disabled = false; 
}

function CargarPropiedades(opcion)
{
	document.forms.form1.texto.value = $opcion;
	document.forms.frmDatos.selPropiedades.disabled=false;
}
</script>

</head>

<body>
<form id="form1" name="form1" method="post" action="">
  <select name="opcion" id="opcion" onchange="actualizaTexto(form1.opcion.options[index].text);">
    <option selected="selected">Aluna texto</option>
    <option>Otro texto</option>
    <option>Mas texto por acá</option>
  </select>
  <input name="texto" type="text" id="texto" value="" size="10" readonly="readonly" />
</form>
</body>
</html> 
Desde ya muchas gracias!. Saludos!.

Última edición por elkevin; 08/12/2009 a las 12:37
  #2 (permalink)  
Antiguo 31/08/2009, 04:11
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Ayuda con aplicación

Para pasar de un select a un text algun valor debes usar algo así el codigo
Código html:
Ver original
  1. document.form1.texto.value = document.form1.opcion.options[document.form1.selectedIndex].value;
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #3 (permalink)  
Antiguo 31/08/2009, 04:14
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Ayuda con aplicación

No nos dices lo que necesitas pero.... mirate esto que creo que va por aqui...

http://www.forosdelweb.com/f13/ayuda...nculos-720820/

Quim
  #4 (permalink)  
Antiguo 31/08/2009, 05:02
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Ayuda con aplicación

@ elkevin:
queria adelantarte de un error comun. puesto que quieres pasar el valor del menu, es necesario que los options tenga un valor, o sea, el atributo value con su respectivo valor. el value no es lo mismo que se encuentra dentro de las etiquetas <option></option>. dentro de este se encuentra una representacion para el usuario pero realmente quien guarda el valor de una opcion es el atributo value.

esta aclaracion es importante porque si haces la prueba en Fx, notaras que el navegador toma el valor desde el texto representativo cuando el atributo no esta presente. bajo las mismas circunstancias, en iexplorer no sucede eso. simplemente iexplorer devuelve un string vacio. en todo caso, lo correcto es siempre indicar el atributo value.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #5 (permalink)  
Antiguo 31/08/2009, 08:28
 
Fecha de Ingreso: abril-2006
Mensajes: 95
Antigüedad: 18 años
Puntos: 0
Respuesta: Ayuda con aplicación

Muchas gracias muchachos!, me puse a mirar la aplicación, y con todo lo que me dijeron la hice marchar :D. Ja!, que alegría!.

Código HTML:
<head>
<title>Menu a Textbox</title>

<script language="javascript">
function actualizaTexto(opcion)
{
	document.forms.form1.opcion.disabled = true;
	document.forms.form1.texto.disabled = true;
	document.form1.texto.value = opcion;
	document.forms.form1.opcion.disabled = false;
	document.forms.form1.texto.disabled = false;
}
</script>

</head>

<body>
<form id="form1" name="form1" method="post" action="">
  <select name="opcion" id="opcion" onChange="actualizaTexto(document.form1.opcion.options[selectedIndex].value);">
    <option selected="selected">Algun texto</option>
    <option>Otro texto</option>
    <option>Mas texto por aca</option>
  </select>
  <input name="texto" type="text" id="texto" value="" size="10" readonly="readonly" />
</form>
</body>
</html> 
abimaelrc: Intenté pasarle los datos al textbox dentro de la función como me sujerís, pero no funcionó, será por que una vez dentro de la función, no puede recolectar los datos del documento?. Al final mas o menos encaré la idea como la tenía al principio, le paso a la función, el texto del menú, y dentro de la función modifico el valor del textbox, utilizando la sintaxis como vos me la corregiste. Funciona!, pero solo bajo Morsilla Firefox.

quimfv: Fantástico ejemplo!, me es muy util para familiarizarme!. Lo que quiero hacer, es pasarle a un textbox, el texto que se ve en un menú de opciones, acá en la última aplicación que subí funciona, pero solo bajo Morsilla Firefox.

zerokilled: Me guié y tube muy en cuenta tu acotación compañero!, aunque me cuesta un poco comprenderla, fijate que te parece como quedó el código ahora, y si estoy respetando las pautas que me has dado.

Bueno, muchas gracias colegas!, voy a seguir profundizando con esta pequeña aplicación que me está sirviendo de mucho. Les hago unas consultas mas:

* Por que mi aplicación no funciona en IE? (utilizo la versión 8)
* Una vez que entro a una función, ya no tengo acceso a los objetos del documento?, es por esto que es necesario pasarselos como referencia a la función?.


Hacepto todo tipo de consejos, correcciones, acotaciones, lo que ustedes crean necesario amigos.

Saludos y muchisimas gracias!, espero con ansias su respuesta!.
  #6 (permalink)  
Antiguo 31/08/2009, 12:44
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Ayuda con aplicación

el problema que estas teniendo es justamente lo que trataba de explicarte en el mensaje anterior. lo que quise decir fue para que funcione en iexplore correctamente, tienes que escribir el atributo value en los <option>:
Código:
  <select name="opcion" id="opcion" onChange="actualizaTexto(document.form1.opcion.options[selectedIndex].value);">
    <option value="un valor" selected="selected">Algun texto</option>
    <option value="un valor">Otro texto</option>
    <option value="un valor">Mas texto por aca</option>
  </select>
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #7 (permalink)  
Antiguo 31/08/2009, 16:49
 
Fecha de Ingreso: abril-2006
Mensajes: 95
Antigüedad: 18 años
Puntos: 0
Respuesta: Ayuda con aplicación

Perfecto!, funcionó bajo IE 8!, muchas gracias!.

Ahora me encontré con otro problema... paso a una función de Javascript, un valor por medio de onchange, y dentro de la función, quiero hacer mysql_query incluyendo el contenido de la valiable en la cadena, algo como:

Código PHP:
<?php
$consulta 
mysql_query("SELECT CatId, NombreCat FROM c_categoria WHERE PadreId = '$ACA_LA_VARIABLE_PASADA_CON_ONCHANGE' ORDER by NombreCat ASC");
?>
Los resultados no son lo que espero, pruebo utilizar un número en ese sector, y me arroja los resultados correctos, también testeo la variable haciendo:

Código PHP:
document.write(ACA_LA_VARIABLE_PASADA_CON_ONCHANGE
y funciona perfecto.

Que puede estar pasando?. Desde ya muchas gracias!, espero sus respuestas!.
  #8 (permalink)  
Antiguo 31/08/2009, 17:07
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Ayuda con aplicación

o sea, dentro de la funcion actualizaTexto tienes esta linea?
Código:
<?php
$consulta = mysql_query("SELECT CatId, NombreCat FROM c_categoria WHERE PadreId = '$ACÁ_LA_VARIABLE_PASADA_CON_ONCHANGE' ORDER by NombreCat ASC");
?>
si es asi, primero recalcar que php se ejecuta en el servidor procesando todo lo que le corresponde antes de enviar el documento al cliente, y javascript se ejecuta en el cliente, de modo que no existe una comunicacion entre ambas parte. para poder utilizar ese valor en php tienes que enviarselo, ya sea enviando el formulario o bien puedes utilizar XHR (XML HTTP Request, un componente de javascript). el mas sencillo es el primero pero obliga al navegador recargar el documento completo. con el segundo se puede crear la peticion, enviarla al servidor, recibir una repuesta, y por ultimo realizar algo con ella. todo esto transparente al navegador, sin tener que recargar el documento. elige entre estas dos alternativas segun la necesidad de tu aplicacion.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #9 (permalink)  
Antiguo 01/09/2009, 08:27
 
Fecha de Ingreso: abril-2006
Mensajes: 95
Antigüedad: 18 años
Puntos: 0
Respuesta: Ayuda con aplicación

Claro, continuando con mi objetivo, lo que deseo hacer son listas dinámicas, que al posame sobre la selección de una, inmediatamente me filtre los datos en otra.

Para esto, le paso a una función, el ID de la primer lista, con la cual filtro los datos de la segunda.

El código es este:

Código PHP:
<script language="javascript">
function ComponerLista(id_cat1)
{
    document.forms.form1.cat1.disabled = true;
    document.forms.form1.cat2.disabled = true;
    document.forms.form1.cat2.length = 0;
    CargarPropiedades(id_cat1);
    document.forms.form1.cat1.disabled = false; 
    document.forms.form1.cat2.disabled = false; 

function CargarPropiedades(id_cat1)
{

    var o
    <?php
    $consulta 
mysql_query("SELECT NombreCat FROM c_categoria WHERE PadreId = '$id_cat1' ORDER BY NombreCat ASC");
    while (
$array mysql_fetch_array($consulta))
    {
        
?>
        o = document.createElement("OPTION");
        o.text = '<?php echo $array["NombreCat"]; ?>';
        document.forms.form1.cat2.options.add (o);
        <?php
    
}
    
mysql_free_result($consulta);
    
?> 
}
</script>
En la primer funcion deshabilito ambos menús, y llamo a la segunda función, con la cual consigo los datos de la DB, para colocarlos en el segundo menú.

En la consulta que realizo, necesito utilizar el número que recibe la función en Javascript, para poder filtrar.

Es mas o menos la idea que tengo. No se en que estoy fallando, cuando utilizo un número colocado en la cadena (a mano) funciona.

Espero sus respuestas!. Gracias otra vez!.

P/D: Dejé la cadena como me sugeriste zerokilled, pero no funciona, lee un valor que no es el correcto.
  #10 (permalink)  
Antiguo 01/09/2009, 11:24
 
Fecha de Ingreso: abril-2006
Mensajes: 95
Antigüedad: 18 años
Puntos: 0
Respuesta: Ayuda con aplicación

Lo solucioné de momento con un bucle!, me quedó así!:

Código PHP:
<script language="javascript">
function ComponerLista(id_cat1)
{
    document.forms.form1.cat1.disabled = true;
    document.forms.form1.cat2.length = 0;
    CargarPropiedades(id_cat1);
    document.forms.form1.cat1.disabled = false; 
//  document.write(id_cat1) 


function CargarPropiedades(id_cat1)
{
    document.forms.form1.cat2.disabled = true;
    var o
    <?php
    $consulta 
mysql_query('SELECT * FROM c_categoria ORDER BY NombreCat ASC');
    while (
$array mysql_fetch_array($consulta))
    {
        
?>
        if (id_cat1 == <?php echo $array["PadreId"]; ?>)
        {
            o = document.createElement("OPTION");
            o.text = '<?php echo $array["NombreCat"]; ?>';
            o.value = <?php echo $array["CatId"]; ?>;
            document.forms.form1.cat2.options.add (o);
        }
        <?php
    
}
    
mysql_free_result($consulta);
    
?> 
    document.forms.form1.cat2.disabled = false; 
}
</script>

Estoy mas contento que perro con dos colas!. :D

Espero sus comentarios!.
  #11 (permalink)  
Antiguo 07/09/2009, 07:38
 
Fecha de Ingreso: abril-2006
Mensajes: 95
Antigüedad: 18 años
Puntos: 0
Respuesta: Ayuda con aplicación

Bueno!, medianamente marcho esto!...

Quiero agradecerles mucho!, abimaelrc, quimfv, zerokilled!.
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.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:29.