[Php-avanzado] consulta javascript

Matias Gea matigea en gmail.com
Vie Abr 12 09:07:19 ART 2013


Hola, Damián.
Me pasaste 4 funciones distintas, no sé por qué.

Te paso una que debería funcionar, con un par de modificaciones. Con
respecto a jQuery, sí, es muy útil, pero tenés que ver si vale la pena
cargar un framework de 100k sólo para hacer lo mismo que con
document.getElementById.

Va la función sin jQuery:

// Calculo que llamaste a la función a través del atributo onchange del
input con "rellena(this.value)"

function rellena(codigo){
   // En a tenemos un string que representa el valor del input desde el que
se llama la función.

   // var o , u;  // Los nombres son muy poco representativos :-) te los
cambio
   var descripcion, precio;
   var valid1 = ^\d+$;
   // document.write("parametro"+a);
   // document.write('<br>');  // Esta es una forma bastante incómoda de
hacer debug, fijate la de abajo

   console.log('Codigo en el input: ', codigo); // Esto te muestra un
mensaje en la consola de javascript
   // Si usás Chrome, visualizás la consola con Ctrl+Shift+J o F12, si usás
Firefox igual (si no me equivoco), pero te recomiendo instalar firebug.

   if (valid1.test(codigo)){
      console.log('El código es valido');
<?php
   include ("conecta.php");
   $result = mysql_query("SELECT * FROM productos ", $link) or die("$sql
<br>".mysql_error());
   while ($row = mysql_fetch_array($result)){
?>
      if (codigo == '<?php echo $row['codigo'];?>' ) {
         descripcion = "<?php echo $row['descripcion'];?>";
         precio = "<?php echo $row['precio'];?>";
         break;
      }
<?php } ?>
   }else{
      console.log('El código NO es valido');

      alert('Solo Numeros por favor...');
   }
   documentgetElementById("descripcion").value = descripcion;
   documentgetElementById("precio").value = precio;
}

Cualquier cosa avisame.

Saludos!


El 12 de abril de 2013 07:48, Damián Colledani
<damian_colledani en yahoo.com>escribió:

> Hola Matias. Logre ver por consola que la consulta a BD se hace bien. Vi
> por ahi que jquery es mas elegido para estos casos algo intenté pero la
> funcion no anda me quedo asi
> <script LANGUAGE="text/javascript">
> function rellena(a){
> <!--
>  var o , u
> var valid1 = ^\d+$;
> document.write("parametro"+a);
>  document.write('<br>');
> if (valid1.test(a.value)){
>  <?php
> include ("conecta.php");
>  $result = mysql_query("SELECT * FROM productos ", $link) or die("$sql
> <br>".mysql_error());
> while ($row = mysql_fetch_array($result)){?>
>  if (a.value == <?php echo $row['codigo'];?>) {
> o = "<?php echo $row['descripcion'];?>";
>  u = "<?php echo $row['precio'];?>";
> break;
> ////Aca se asignan bien las variables
> }
> <?php } ?>
>  }else{
> alert('Solo Numeros por favor...');
> }
>  documentgetElementById("descripcion").value = o;
>  <script LANGUAGE="text/javascript">
> function rellena(a){
> <!--
>  var o , u
> var valid1 = ^\d+$;
> document.write("parametro"+a);
>  document.write('<br>');
> if (valid1.test(a.value)){
>  <?php
> include ("conecta.php");
>  $result = mysql_query("SELECT * FROM productos ", $link) or die("$sql
> <br>".mysql_error());
> while ($row = mysql_fetch_array($result)){?>
>  if (a.value == <?php echo $row['codigo'];?>) {
> o = "<?php echo $row['descripcion'];?>";
>  u = "<?php echo $row['precio'];?>";
> break;
>  }
> <?php } ?>
> }else{
>  alert('Solo Numeros por favor...');
> }
>  $('#descripcion').val(o);
> $('#precio').val(u);
> }
> //-->
> </script>
> <script LANGUAGE="text/javascript">
> function rellena(a){
> <!--
> var o , u
> var valid1 = ^\d+$;
>  document.write("parametro"+a);
> document.write('<br>');
> if (valid1.test(a.value)){
>  <?php
> include ("conecta.php");
> $result = mysql_query("SELECT * FROM productos ", $link) or die("$sql
> <br>".mysql_error());
>  while ($row = mysql_fetch_array($result)){?>
> if (a.value == <?php echo $row['codigo'];?>) {
>  o = "<?php echo $row['descripcion'];?>";
> u = "<?php echo $row['precio'];?>";
>  break;
> }
> <?php } ?>
> }else{
>  alert('Solo Numeros por favor...');
> }
>  $('#descripcion').val(o);
>  $('#precio').val(u);
> }
> //-->
> </script>
> <script LANGUAGE="text/javascript">
> function rellena(a){
> <!--
> var o , u
> var valid1 = ^\d+$;
>  document.write("parametro"+a);
> document.write('<br>');
> if (valid1.test(a.value)){
>  <?php
> include ("conecta.php");
> $result = mysql_query("SELECT * FROM productos ", $link) or die("$sql
> <br>".mysql_error());
>  while ($row = mysql_fetch_array($result)){?>
> if (a.value == <?php echo $row['codigo'];?>) {
>  o = "<?php echo $row['descripcion'];?>";
> u = "<?php echo $row['precio'];?>";
> break;
>  }
> <?php } ?>
> }else{
> alert('Solo Numeros por favor...');
>  }
>  documentgetElementById("descripcion").value = o;
>  documentgetElementById("precio").value = o;
> ///aca ya no se asigna nada
> }
> //-->
> </script>
> Como veras estoy necesitando que los textbox descripcion y precio se
> completen dinamicamente, no saleeeeeee, ayudaaaaaa
> Gracias
>
>
>
> --- El *jue 11-abr-13, Matias Gea <matigea en gmail.com>* escribió:
>
>
> De: Matias Gea <matigea en gmail.com>
>
> Asunto: Re: [Php-avanzado] consulta javascript
> Para: "Lista del curso de PHP Avanzado" <php-avanzado en pato2.fi.mdp.edu.ar>
> Fecha: jueves, 11 de abril de 2013, 4:15
>
>
> Hola, Damián.
>
> Los errores de sintaxis en el javascript generado son por que hacés
> asignaciones sin valor, por ej:
>
> o.value = ;
>
> Para evitarlo, deberías encerrar con comillas los valores:
>
> if (a == '<?php echo $row["codigo"]; ?>') {
>    o.value = '<?php echo $row["descripcion"]'; ?>
>    u.value = '<?php echo $row["precio"]'; ?>
> }
>
>
> Saludos!
>
> El 10 de abril de 2013 23:34, Damián Colledani <damian_colledani en yahoo.com<http://mc/compose?to=damian_colledani@yahoo.com>
> > escribió:
>
> Genial Gracias!!! pero me sigue tirando la consola que no está definida la
> funcion. Evidentemente siguen los problemas de sintaxis que no veo
> el Ctrl-u me da lo siguiente: y no lo se interpretar correctamente. Me lo
> explicas?
>
> /////////////
> <script LANGUAGE="text/javascript"> function rellena(a){ var o,u if (a ==
> ) { o.value = ; u.value = ;  } if (a == ) { o.value = ; u.value = ;  } document.getElementById("descripcion").value
> = o.value; document.getElementById("precio").value = u.value; } </script>
> Gracias
> --- El *mié 10-abr-13, Leonardo Tadei - Pegasus Tech Supply <
> leonardot en pegasusnet.com.ar<http://mc/compose?to=leonardot@pegasusnet.com.ar>
> >* escribió:
>
>
> De: Leonardo Tadei - Pegasus Tech Supply <leonardot en pegasusnet.com.ar<http://mc/compose?to=leonardot@pegasusnet.com.ar>
> >
> Asunto: Re: [Php-avanzado] consulta javascript
> Para: "Lista del curso de PHP Avanzado" <php-avanzado en pato2.fi.mdp.edu.ar<http://mc/compose?to=php-avanzado@pato2.fi.mdp.edu.ar>
> >
> Fecha: miércoles, 10 de abril de 2013, 16:20
>
>
> Hola Damián,
>
>     el error se debe estar dando porque la función JS que generás en PHP
> tiene errores de sintaxis.
>     Para verlos, fijate en el código HTML generado (Ctrl+u) y ahí vas a ver
> la función que te queda.
>     Si no veo mal, las líneas adentro del if no terminan con ; en JS.
>     También parece haber un error semántico, porque a las variables o,u les
> asignás un valor como "value", pero después a los value de los elementos
> DOM se las asignás sin el value.
>
>     La función JS que veas en el fuente, la podés ejecutar en la consola
> del navegador y ver qué arroja.
>
> El mié, 10-04-2013 a las 06:54 -0700, Damián Colledani escribió:
> > Disculpen la molestia pero la consola de error de navegador me da
> > error y no me puedo dar cuenta cual es, si me ayudan les agradezco:
> >
> >
> > /////////Funcion
> > <script LANGUAGE="text/javascript">
> > function rellena(a){
> > var o,u
> > var a
> > <?php
> > include ("conecta.php");
> > $result = mysql_query("SELECT * FROM productos ", $link) or die("$sql
> > <br>".mysql_error());
> > while ($row = mysql_fetch_row($result)){?>
> > if (a == <?php echo $row["codigo"]; ?>) {
> > o.value = <?php echo $row["descripcion"]; ?>
> > u.value = <?php echo $row["precio"]; ?>
> >
> > }
> > <?php
> > } ?>
> > document.getElementById("descripcion").value = o;
> > document.getElementById("precio").value = u;
> > }
> > </script>
> > ////////la llamo asi
> > <input type="text" id="codigo" name="codigo" size="10" value=""
> > onchange="rellena(this.value)" />
> > Gracias
> > _______________________________________________
> > Php-avanzado mailing list
> > Php-avanzado en pato2.fi.mdp.edu.ar<http://mc/compose?to=Php-avanzado@pato2.fi.mdp.edu.ar>
> > http://www3.fi.mdp.edu.ar/cgi-bin/mailman/listinfo/php-avanzado
>
> --
> Leonardo Tadei
> leonardot en pegasusnet.com.ar<http://mc/compose?to=leonardot@pegasusnet.com.ar>
> Web: http://leonardo.tadei.com.ar
> Firma pública: http://www.pegasusnet.com.ar/LeonardoTadei-public.key
>
> _______________________________________________
> Php-avanzado mailing list
> Php-avanzado en pato2.fi.mdp.edu.ar<http://mc/compose?to=Php-avanzado@pato2.fi.mdp.edu.ar>
> http://www3.fi.mdp.edu.ar/cgi-bin/mailman/listinfo/php-avanzado
>
>
> _______________________________________________
> Php-avanzado mailing list
> Php-avanzado en pato2.fi.mdp.edu.ar<http://mc/compose?to=Php-avanzado@pato2.fi.mdp.edu.ar>
> http://www3.fi.mdp.edu.ar/cgi-bin/mailman/listinfo/php-avanzado
>
>
>
>
> --
> Matias Fernando Gea
> matigea en gmail.com <http://mc/compose?to=matigea@gmail.com>
> http://www.mfgea.com.ar
>
> -----Adjunto en línea a continuación-----
>
>
> _______________________________________________
> Php-avanzado mailing list
> Php-avanzado en pato2.fi.mdp.edu.ar<http://mc/compose?to=Php-avanzado@pato2.fi.mdp.edu.ar>
> http://www3.fi.mdp.edu.ar/cgi-bin/mailman/listinfo/php-avanzado
>
>
> _______________________________________________
> Php-avanzado mailing list
> Php-avanzado en pato2.fi.mdp.edu.ar
> http://www3.fi.mdp.edu.ar/cgi-bin/mailman/listinfo/php-avanzado
>



-- 
Matias Fernando Gea
matigea en gmail.com
http://www.mfgea.com.ar
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://www3.fi.mdp.edu.ar/pipermail/php-avanzado/attachments/20130412/35c34f28/attachment-0001.html>


Más información sobre la lista de distribución Php-avanzado