Foros del Web » Programando para Internet » Javascript »

Relleno automático según listbox

Estas en el tema de Relleno automático según listbox en el foro de Javascript en Foros del Web. Hola a todos: Tengo un formulario que me crea filas con celdas automaticamente de acuerdo a mis necesidades. Con este código Código HTML: <BODY bgcolor= ...
  #1 (permalink)  
Antiguo 31/12/2005, 18:54
Avatar de BLAH !!  
Fecha de Ingreso: septiembre-2003
Ubicación: Región Metropolitana, Santiago, Chile
Mensajes: 706
Antigüedad: 20 años, 7 meses
Puntos: 16
Exclamación Relleno automático según listbox

Hola a todos:

Tengo un formulario que me crea filas con celdas automaticamente de acuerdo a mis necesidades. Con este código

Código HTML:
<BODY bgcolor="ffffff" text="#000000" leftMargin="10" topMargin="10">
<center>
<FONT COLOR=000000 SIZE=4 FACE=Arial>
 Seleccione el número de articulos que son
</FONT>
<form action="<?=$_SERVER["PHP_SELF"]?>" method="get"> 
<select name="filas"> 
<? for($i=1; $i<=20; $i++){ 
echo "<option value='".$i."'>".$i."</option>"; 
}?> 
</select> 
<input type="hidden" name="crear" value="tabla"> 
<input type="submit" value="crear"> 
</form> 

--------------------------------------------------------------------
Este código actua en este formulario

Código HTML:
<form name="cotizacion" method="post" action="email.php" onSubmit="return chkcotizacion()">
 <table border="0" width=100% cellpadding=0 cellspacing=0>
   <tr>
   <td align=center colspan=2 width=100%>
     <table border=1 cellpadding=0 cellspacing=0 bordercolor=555555 width=680>
      <tr>
       <td align=center width=80>
        <font face="Arial, Helvetica, sans-serif" color="000000" size=3><b>CANT.</b></font>
       </td>
       <td align=center width=100>
        <font face="Arial, Helvetica, sans-serif" color="000000" size=3><b>ITEM</b></font>
       </td>
       <td align=center width=220>
        <font face="Arial, Helvetica, sans-serif" color="000000" size=3><b>ARTICULO</b></font>
       </td>
       <td align=center width=140>
        <font face="Arial, Helvetica, sans-serif" color="000000" size=3><b>V/UNIT.</b></font>
       </td>
       <td align=center width=140>
        <font face="Arial, Helvetica, sans-serif" color="000000" size=3><b>TOTAL</b></font>
       </td>
      </tr>
     </table>
<? 
if(isset($_GET["crear"])){ 
    echo '<table border="0" cellpadding="0" cellspacing="0" width="680">'; 
   for($i=1; $i<=$_GET["filas"]; $i++){ 
        echo " 
      <tr> 
       <td align=center width=80><input type=text name=cantidad[$i] id=cantidad[$i] size=5></td> 
       <td align=center width=100><input type=text name=item[$i] id=item[$i] size=7></td> 
       <td align=center width=220><textarea cols=22 rows=2 name=articulo[$i] id=articulo[$i]></textarea></td> 
       <td align=center width=140>$ <input type=text name=valor[$i] id=valor[$i] size=10  onKeyUp=\"javascript: document.getElementById('total[$i]').value = document.getElementById('valor[$i]').value * document.getElementById('cantidad[$i]').value;\"></td> 
       <td align=center width=140>$ <input type=text name=total[$i] id=total[$i] size=10></td> 
      </tr>"; 
    } 
    echo "</table>"; 
} 
?> 
-------------------------------------------------------------

Si se fijan debo poner en el NAME="" de cada input del formulario un [$i] que será el número de acuerdo a las filas que cree en un principio.

-------------------------------------------------------------

Todo bien hasta aca. Pero ahora quiero hacer que el <input name="item[$i]"> sea un select que al elejir una de sus options me complete automaticamente el textarea Articulo[$i] y el input valor[$i] .

Esto lo logro con este java ... veanlo

Código HTML:
<script>
function cambio( region ) {
  document.form.comboB.length =0;
  switch ( region )  {
    case 'baleares': {
      document.form.comboB.value = "Respuesta 1";
      document.form.texto.value = "Respuesta 1.1"}
      break;
    case 'catalunya': {
      document.form.comboB.value = "Respuesta 2";
      document.form.texto.value = "Respuesta 2.2"}
      break;

    case 'galicia':  {
      document.form.comboB.value = "Respuesta 3";
      document.form.texto.value = "Respuesta 3.3"}
      break;
  }
}
</script>


<form name="form" method="post" action="">
  <select name="comboA" onChange="cambio(this.value)">
      <option value="0" selected>ITEM</option>
      <option value="baleares">Baleares</option>
      <option value="catalunya">Cataluña</option>
      <option value="galicia">Galicia</option>
  </select>
  <textarea name="comboB">
  </textarea>
  <input type="text" name="texto" value="">
</form> 
---------------------------------------------------------------

El problema es que este Java no me sirve ya que al completar de acuerdo a mi formulario los nombres de el textarea y el input no me funcionan (deben ser ARTICULO[$i] y VALOR[$i].

He ahí mi problema no se como arreglar este problema, es por eso que recurro a PHP para ver si hay una forma de completar un textarea y un input solamente con la eleccion de una option de un select.
__________________
Adios ...!!!!
  #2 (permalink)  
Antiguo 01/01/2006, 16:13
Avatar de BLAH !!  
Fecha de Ingreso: septiembre-2003
Ubicación: Región Metropolitana, Santiago, Chile
Mensajes: 706
Antigüedad: 20 años, 7 meses
Puntos: 16
como insertar un SCRIPT en PHP ?

Hola:

Quisiera sabe si existe alguna forma de insertar un Java Script dentro de un PHP -...
__________________
Adios ...!!!!
  #3 (permalink)  
Antiguo 01/01/2006, 17:06
Avatar de BLAH !!  
Fecha de Ingreso: septiembre-2003
Ubicación: Región Metropolitana, Santiago, Chile
Mensajes: 706
Antigüedad: 20 años, 7 meses
Puntos: 16
De acuerdo mmm....

Por lo que he investigado no se puede directamente (copiando el script y pegandolo dentro de las etiquetas php <? ?> por lo que sigo con la duda...

Por favor lean ese tema que es relacionado con lo que necesito

http://www.forosdelweb.com/showthread.php?t=360819

El problema esta en que no se como hacer para obtener la completacion automatica de un textarea y un input (que tienen variables de creacion automatica, en x numero de filas), en php.

Les puedo mandar el link para que vean mas menos lo que estoy creando



-------------------------------------------------------------------------

Lo que quiero es que el la seccion ITEM en vez de que sea un <INPUT TYPE=TEXT> cambie a un <SELECT> pera que tenga en las <OPTION> todos los item y que al seleccionar un de ellos automaticamente se complete el campo de ARTICULO y VALOR... pero lo complicado es que tambien esta la completacion automatica de tablas y puede haber problemas con ello y también esta el operador matematico en Java de la cantidad por el valor para dar el total ..... en fin no se como hacer para ponder tener el select y que se complete lo demas automaticamente...

Muchas Gracias.-
Pablo Araya.-
__________________
Adios ...!!!!

Última edición por BLAH !!; 08/07/2006 a las 00:27
  #4 (permalink)  
Antiguo 01/01/2006, 18:13
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 9 meses
Puntos: 102
Cita:
Quisiera sabe si existe alguna forma de insertar un Java Script dentro de un PHP
Sí, existe y es tan simple: solo mandalo como salida....

JavaScript como HTML (CSS y demás) son lenguajes interpretados por el navegador, así pués para "que funcionen" deben ser entregados al navegador...

Los dos temas de tu creación que dices estan "relacionados" son unidos pues en realidad son lo mismo, son movidos al foro de JavaScript pués es de ahí el problema (un comportamiento del lado del cliente) y de paso se cambia el título del tema (que no es nada descriptivo). Por favor lee las políticas del foro, tu "otro tema" fue eliminado.

Suerte!
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #5 (permalink)  
Antiguo 01/01/2006, 18:40
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 9 meses
Puntos: 102
Ya viendo bien el caso... unos comentarios:
Cita:
recurro a PHP para ver si hay una forma de completar un textarea y un input solamente con la eleccion de una option de un select.
Es importante entiendas el funcionamiento de PHP y de los lenguajes que trabajan del lado del servidor en general; estos solo hacen entrega de código que puede interpretado por el navegador (HTML), su comportamiento es totalmente independiente.

Lo que planteas, sí, se puede hacer con PHP pero para eso tendrías que recargar la página para que el servidor procese y entregue un contenido adecuado (diferente a tus requerimentos)... esto definitivamente no es lo más óptimo (el simple hecho de conservar los datos ya modificados) y lo ideal es que lo controles mediante JavaScript.

La insersión de JavaScript dentro de PHP no es diferente a la del HTML... solo necesitas tenerlo como salida:
Código PHP:
<?php
$var
"Hola mundo";
echo 
"<script> alert('$var') </script>";
?>
Entre tantas otras variantes...

Cita:
pero lo complicado es que tambien esta la completacion automatica de tablas y puede haber problemas con ello
Para ello es que estás dando identificadores diferentes a cada "fila" mediante una variable numérica, solo tienes que hacer referencia a ese identificador numérico (entre otras posibilidades) con JavaScript (NO JAVA, JAVA es otra cosa). Ve que en el código que dices te sirve hay un "comboB", solo cambia ese "B" por un "X número"... así pués, es como si tubieras un combo1, combo2, comboN y un texto1, texto2, textoN.

Espero al menos haberme explicado. Suerte!
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #6 (permalink)  
Antiguo 01/01/2006, 19:28
Avatar de BLAH !!  
Fecha de Ingreso: septiembre-2003
Ubicación: Región Metropolitana, Santiago, Chile
Mensajes: 706
Antigüedad: 20 años, 7 meses
Puntos: 16
Claro ahora si entiendo lo que me quieres decir...

Muchas Gracias primero que todo por tu interes en ayudarme...

Ya he comprendido lo que me dices, pero la solución que tu me planteas ya la había utilizado, y no tuve exito en ello.

El problema esta en el parámetro VALUE de la etiqueta <option> ya que no se porque me aparece este error con ella...

Error
--------------------------------------------------------------------------
Parse error: parse error, unexpected T_STRING, expecting ',' or ';' in /home/nautigif/public_html/pablo/nautigift/cotizacion email/index2.php on line 178
--------------------------------------------------------------------------

Esa linea es esta: (LA LINEA ROJA)

<?
if(isset($_GET["crear"])){
echo '<table border="0" cellpadding="0" cellspacing="0" width="680">';
for($i=1; $i<=$_GET["filas"]; $i++){
echo "
<script>
function cambio( item ) {
document.cotizacion.articulo[$i].length =0;
switch ( item ) {
case 'A-098': {
document.cotizacion.articulo[$i].value = "Respuesta 1";
document.cotizacion.valor[$i].value = "Respuesta 1.1"}
break;
case 'A-099': {
document.cotizacion.articulo[$i].value = "Respuesta 2";
document.cotizacion.valor[$i].value = "Respuesta 2.2"}
break;
case 'A-100': {
document.cotizacion.articulo[$i].value = "Respuesta 3";
document.cotizacion.valor[$i].value = "Respuesta 3.3"}
break;
}
}
</script>
<tr>
<td align=center width=80><input type=text name="cantidad[$i]" id="cantidad[$i]" size=5></td>
<td align=center width=100>
<select type=text name="item[$i]" id="item[$i]" onChange="cambio(this.value)">
<option selected>ITEM</option>
<option value="A-098">A-098</option>
<option value="A-099">A-099</option>
<option value="A-100">A-100</option>
</select></td>
<td align=center width=220><textarea cols=22 rows=2 name="articulo[$i]" id="articulo[$i]"></textarea></td>
<td align=center width=140>$ <input type=text name="valor[$i]" id="valor[$i]" size=10 onKeyUp=\"javascript: document.getElementById('total[$i]').value = document.getElementById('valor[$i]').value * document.getElementById('cantidad[$i]').value;\"></td>
<td align=center width=140>$ <input type=text name="total[$i]" id="total[$i]" size=10></td>
</tr>";
}
echo "</table>";
}
?>
__________________
Adios ...!!!!
  #7 (permalink)  
Antiguo 01/01/2006, 19:35
Avatar de BLAH !!  
Fecha de Ingreso: septiembre-2003
Ubicación: Región Metropolitana, Santiago, Chile
Mensajes: 706
Antigüedad: 20 años, 7 meses
Puntos: 16
Parse error: parse error, unexpected T_STRING, expecting '*' in...

Este error puede ser por 2 razones. Ambos son debido al error del usuario.

Introducir un error de sintaxis del php al corregir el archivo php. Usted no insertó sus modificaciones en el lugar correcto o usted agregó accidentalmente un carácter en alguna parte a la que no pertenece. Ponga atención a los detalles al corregir el archivo php. Los errores aparentemente insignificantes de sintaxis causarán problemas muy importantes.
Usando un editor de texto que no apoye archivos de php. Muchos editores deforman el código y causará errores del php aunque usted no puede verlo con sus propios ojos. Es muy importante que usted utilize el correcto Editor de Texto para editar MKPortal y los archivos del Foro. Ante la duda use MS Wordpad.


---------------------------------------------------------------------------------------
¬¬
Ahora, cual es el error de sintesis
__________________
Adios ...!!!!
  #8 (permalink)  
Antiguo 01/01/2006, 19:48
Avatar de BLAH !!  
Fecha de Ingreso: septiembre-2003
Ubicación: Región Metropolitana, Santiago, Chile
Mensajes: 706
Antigüedad: 20 años, 7 meses
Puntos: 16
De acuerdo AHH ! al fin

Que torpe .. !! como no se me ocurrio antes !!!

nunca se ha podido poner " " dentro de un ECHO de php xD jajaja las cambie a ' ' y todo bien .. el problema anterior se resolvio ... ahora el otro es que no se completa ningun campo extra ... ¬¬
__________________
Adios ...!!!!
  #9 (permalink)  
Antiguo 01/01/2006, 20:02
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 9 meses
Puntos: 102
Cita:
nunca se ha podido poner " " dentro de un ECHO de php
... tienes que escaparlos sino esas comillas forman parte de la sintaxis de PHP (tu las quieres tener de salida):
Código PHP:
echo "Comillas \""
Ahora bien ¿para qué utilizar un echo() en ese caso?; no es más simple salir de PHP?:
Código PHP:
<?php
for($i=0$i<5$i++) {
?>
<p>Muncho texto que ha de ser enviado al navegador ¿para qué un echo?; así no tenemos problemas con las "comillas" .. entre otras ventajas. Te hace falta entender (nuevamente) cómo trabaja PHP... lee las FAQ (de PHP) que hay una que habla de este "método".</p>
<?php
}
?>
Tienes:
Cita:
document.cotizacion.articulo[$i].value = "Respuesta 1";
NO es válido eso... ese código es JavaScript y JS no utiliza los "$" en sus variables... tienes que diferenciar bien las cosas, estás mandando a imprimir N veces la misma función (que, repito, por ser JS su funcionamiento es independiente de PHP) y ni siquiera bien.

Te aconsejo separes las cosas: crea tu función JS partiendo de HTML que ya tienes generado (name="itemN") y hazlo funcionar.. es esa función JavaScript la que ha de ser "variable" pasándole de parámetro ese identificador numérico.

Saludos!
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #10 (permalink)  
Antiguo 01/01/2006, 20:15
Avatar de BLAH !!  
Fecha de Ingreso: septiembre-2003
Ubicación: Región Metropolitana, Santiago, Chile
Mensajes: 706
Antigüedad: 20 años, 7 meses
Puntos: 16
Sonrisa mmm....

Si ... mira ... lo he hecho de dos formas distintas, puse el JS dentro del ECHO con la variable numerica [$i] y al crear las filas tambien se van creando JS con el numero de la fila, pero no funciona.

También intente poner el JS fuera del PHP y nada, tampoco funciona... entonces sigo con la duda xD ahora si que no se cual es el problema porque se me ve todo bien pero eso no reacciona.
__________________
Adios ...!!!!
  #11 (permalink)  
Antiguo 02/01/2006, 06:45
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 9 meses
Puntos: 102
... vámos de nuevo: el problema NO es de PHP, no es de la forma en que mandas a imprimir la función. El problema es que "tu función" JavaScript esta mal...

... pero acaso ya lo resolviste?: http://www.forosdelweb.com/f13/cual-problema-este-js-360914/
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
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 08:59.