Foros del Web » Programando para Internet » Javascript » Frameworks JS »

consulta y onchage

Estas en el tema de consulta y onchage en el foro de Frameworks JS en Foros del Web. buenas tarde primero que todo .....soy nuevo en el foro y tengo una pequeña duda acerca de una consulta con onchage he buscado en el ...

  #1 (permalink)  
Antiguo 05/05/2011, 16:25
 
Fecha de Ingreso: mayo-2011
Mensajes: 38
Antigüedad: 12 años, 11 meses
Puntos: 0
consulta y onchage

buenas tarde primero que todo .....soy nuevo en el foro y tengo una pequeña duda acerca de una consulta con onchage he buscado en el foro y he visto que dicen que es tema de ajax ,cosa que desconozco totalmente , tengo un textbox con dos botones a los lados los cuales me aumentan y disminuyen el valor de uno en uno,sin embargo quiero que al aumentar o disminuir el valor del text me traiga el valor de la bd en mysql gracias de antemano
  #2 (permalink)  
Antiguo 05/05/2011, 16:32
 
Fecha de Ingreso: abril-2011
Mensajes: 1.342
Antigüedad: 13 años
Puntos: 344
Respuesta: consulta y onchage

No entiendo tu pregunta. ¿Quieres que al aumentar el valor o disminuir el valor de un campo de texto te traiga el qué?

Especifica un poco más y pon el código que tengas para hacernos una mejor idea.
  #3 (permalink)  
Antiguo 05/05/2011, 16:48
 
Fecha de Ingreso: mayo-2011
Mensajes: 38
Antigüedad: 12 años, 11 meses
Puntos: 0
Respuesta: consulta y onchage

Cita:
Iniciado por alexg88 Ver Mensaje
No entiendo tu pregunta. ¿Quieres que al aumentar el valor o disminuir el valor de un campo de texto te traiga el qué?

Especifica un poco más y pon el código que tengas para hacernos una mejor idea.
gracias por responder bueno lo que quiero q me traiga es un valor de la consulta
// este es el boton menos
codigo<input type="button" name="mas" value="-" style="color:red;height:20px; width:20px" onclick="document.getElementById('cantidad').value = parseInt(document.getElementById('cantidad').value ) - 1" title="" />

<input name="cod" type="text" id="cantidad" size="1" value="1"/>

producto<input name="producto" type="text" value=" " />

// y este el boton mas
<input type="button" name="menos" value="+" style="color:red;height:20px; width:20px" onclick="document.getElementById('cantidad').value = parseInt(document.getElementById('cantidad').value ) + 1" title="" />

digamos que tengo 10 registros de productos y quiero saber el nombre de los mismo ej:el codigo 1 le corresponde a mango asi que si yo en el textbox llamado cod con los botones voy aumentando el numero de codigo asi mismo quiero que en el text producto me valla mostrando el nombre del producto
  #4 (permalink)  
Antiguo 05/05/2011, 17:06
 
Fecha de Ingreso: abril-2011
Mensajes: 1.342
Antigüedad: 13 años
Puntos: 344
Respuesta: consulta y onchage

Ahora si me he enterado.

Para usar ajax te recomiendo un framework javascript como JQuery.

En esta página está la función que te permitirá realizar lo que quieres:
http://api.jquery.com/jQuery.ajax/

Te pongo un ejemplo:

Código Javascript:
Ver original
  1. $.ajax(
  2. url: "buscar_producto.php",
  3. dataType: 'text',
  4. data: {num: $('input[name="cod"]').val()},
  5. success: function(datos){
  6. $('input[name="producto"]').val(datos);}
  7. );

Eso en la parte html.

Luego tienes que tener una página php o en otro lenguaje (no se cual utilizas)
en la que buscas en la base de datos.
  #5 (permalink)  
Antiguo 05/05/2011, 17:29
 
Fecha de Ingreso: mayo-2011
Mensajes: 38
Antigüedad: 12 años, 11 meses
Puntos: 0
Respuesta: consulta y onchage

Cita:
Iniciado por alexg88 Ver Mensaje
Ahora si me he enterado.

Para usar ajax te recomiendo un framework javascript como JQuery.

En esta página está la función que te permitirá realizar lo que quieres:
http://api.jquery.com/jQuery.ajax/

Te pongo un ejemplo:

Código Javascript:
Ver original
  1. $.ajax(
  2. url: "buscar_producto.php",
  3. dataType: 'text',
  4. data: {num: $('input[name="cod"]').val()},
  5. success: function(datos){
  6. $('input[name="producto"]').val(datos);}
  7. );

Eso en la parte html.

Luego tienes que tener una página php o en otro lenguaje (no se cual utilizas)
en la que buscas en la base de datos.

uso php ,gracias nuevamente por la pronta respuesta la funcion de ajax se hace sobre el onchage del text? y si es asi en la otra pagina.php donde se hace consulta los campos pasan automaticamente ?o debo usar alguna session para enviar el cod del producto que es con lo que hago la busqueda .gracias
  #6 (permalink)  
Antiguo 05/05/2011, 18:15
 
Fecha de Ingreso: abril-2011
Mensajes: 1.342
Antigüedad: 13 años
Puntos: 344
Respuesta: consulta y onchage

La función ajax envía al servidor un parámetro cod=[valor del textbox] mediante una petición GET.

En php usas $GET['cod'] para obtener el parámetro y realizas la búsqueda en la base de datos. Luego devuelves con un echo $producto siendo esta variable el nombre del producto (nada de html, el archivo php tiene que devolver texto plano como se ha indicado en la función $.ajax mediante el parámetro dataType).

Utiliza el onchange del input text pero ya que lo tienes puedes usar JQuery.

Código Javascript:
Ver original
  1. $('input[name="cod"]').change(function){$.ajax(......);})
  #7 (permalink)  
Antiguo 05/05/2011, 18:43
 
Fecha de Ingreso: mayo-2011
Mensajes: 38
Antigüedad: 12 años, 11 meses
Puntos: 0
Respuesta: consulta y onchage

Cita:
Iniciado por alexg88 Ver Mensaje
La función ajax envía al servidor un parámetro cod=[valor del textbox] mediante una petición GET.

En php usas $GET['cod'] para obtener el parámetro y realizas la búsqueda en la base de datos. Luego devuelves con un echo $producto siendo esta variable el nombre del producto (nada de html, el archivo php tiene que devolver texto plano como se ha indicado en la función $.ajax mediante el parámetro dataType).

Utiliza el onchange del input text pero ya que lo tienes puedes usar JQuery.

Código Javascript:
Ver original
  1. $('input[name="cod"]').change(function){$.ajax(......);})
gracias por tu paciencia ... pero he descubierto algo importante los 2 botones que aumentan y disminuyen son tipo "button"y no "submit" quisiera saber si eso influye en tu codigo o puedo seguir normalmente sin embargo lo probare y luego te digo gracias
  #8 (permalink)  
Antiguo 06/05/2011, 02:59
 
Fecha de Ingreso: abril-2011
Mensajes: 1.342
Antigüedad: 13 años
Puntos: 344
Respuesta: consulta y onchage

Como no vas a subir nada mediante un formulario mejor que sean de tipo button. Los submit son para formularios.
  #9 (permalink)  
Antiguo 06/05/2011, 15:47
 
Fecha de Ingreso: mayo-2011
Mensajes: 38
Antigüedad: 12 años, 11 meses
Puntos: 0
Respuesta: consulta y onchage

Cita:
Iniciado por alexg88 Ver Mensaje
Como no vas a subir nada mediante un formulario mejor que sean de tipo button. Los submit son para formularios.
buenas de nuevo ,he estado mirando el enlace que pusistes y me ha sido de gran ayude ,buscando me encontre con un codigo parecido al tuyo asi que decidi inplementarlo ,sin embargo por alguna razon no me funciona.....llevo todo el dia mirando que error tengo pero no lo encuentro ,y cuando ejecuto el pj2 me sale un error diciendo :"Error de lectura XML: declaración de texto o XML en un lugar distinto del principio de la entidad
Ubicación: http://localhost/prueba/coprom/ej2.php
Número de línea 16, columna 1:"<?xml version='1.0' encoding='ISO-8859-1'?><datos><pruducto><![CDATA[]]></producto></datos>
^




pagina 1.php
<script language="JavaScript">
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;
}

function traerDatos()
{
var cod=document.getElementById("cod").value;
var materia=document.getElementById("producto");


var ajax=nuevoAjax();
ajax.open("POST", "ej2.php", true);
ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
ajax.send("v="+cod);

ajax.onreadystatechange=function()
{
if (ajax.readyState==4)
{
var respuesta=ajax.responseXML;
materia.value=respuesta.getElementsByTagName("prod ucto")[0].childNodes[0].data;

}
}
}
</script>



codigo<input type="button" name="mas" id="cod" value="-" style="color:red;height:20px; width:20px" onclick= " traerDatos(); document.getElementById('cantidad').value = parseInt(document.getElementById('cantidad').value ) - 1" title="" />

<input name="cod" type="text" id="cantidad" size="1" value="" readonly />

<input type="button" name="menos" value="+" id="cod" style="color:red;height:20px; width:20px" onclick=" traerDatos(); document.getElementById('cantidad').value = parseInt(document.getElementById('cantidad').value ) + 1" title="" "/>





pag2.php


<?php
$v=$_POST["v"];
$conexion=mysql_connect("localhost", "root", "root");
mysql_select_db("COPROM", $conexion);
$resultado=mysql_query("SELECT producto FROM t_mat WHERE cod='$v'");
$registro=mysql_fetch_row($resultado);
$xml="<?xml version='1.0' encoding='ISO-8859-1'?>";
$xml.="<datos>";
$xml.="<producto><![CDATA[$registro[0]]]></producto>";
$xml.="</datos>";
header("Content-type: text/xml");
echo $xml;
?>

sabrias decirme el error que tengo te lo agradeceria enormemente
  #10 (permalink)  
Antiguo 06/05/2011, 16:20
 
Fecha de Ingreso: abril-2011
Mensajes: 1.342
Antigüedad: 13 años
Puntos: 344
Respuesta: consulta y onchage

No entiendo para que quieres ese código si con el que te pase es muchísimo más sencillo realizar una conexión con Ajax.

Ese error puede ser de varias cosas, pero estaría bien que especificases que línea es la 16 del código que has pasado.
  #11 (permalink)  
Antiguo 06/05/2011, 16:27
 
Fecha de Ingreso: mayo-2011
Mensajes: 38
Antigüedad: 12 años, 11 meses
Puntos: 0
Respuesta: consulta y onchage

Cita:
Iniciado por alexg88 Ver Mensaje
No entiendo para que quieres ese código si con el que te pase es muchísimo más sencillo realizar una conexión con Ajax.

Ese error puede ser de varias cosas, pero estaría bien que especificases que línea es la 16 del código que has pasado.
de nuevo gracias por tu pronta respuesta la linea donde sale el error es esta

$registro=mysql_fetch_row($resultado)

use tu codigo pero por alguna razon cuando iva a la pagina 2 no me hacia la consulta alo mejor sea por mi nulo conocimiento en ajax
  #12 (permalink)  
Antiguo 06/05/2011, 16:44
 
Fecha de Ingreso: abril-2011
Mensajes: 1.342
Antigüedad: 13 años
Puntos: 344
Respuesta: consulta y onchage

En la consulta usas $v = $_POST["v"].

Ese parámetro "v" no le veo en tu html por ningun sitio.

Sobre lo de que no te funcionaba mi código, habría que ver que hacías en el php para recoger los datos.

Código Javascript:
Ver original
  1. $.ajax(
  2. url: "buscar_producto.php",
  3. dataType: 'text',
  4. data: {num: $('input[name="cod"]').val()},
  5. success: function(datos){
  6. $('input[name="producto"]').val(datos);}
  7. );

En el código se enviaba un parámetro num con el valor del código.

En el php lo recogerías:

Código PHP:
Ver original
  1. $num = $_GET["num"];
  2. $conexion=mysql_connect("localhost", "root", "root");
  3. mysql_select_db("COPROM", $conexion);
  4. $resultado=mysql_query("SELECT producto FROM t_mat WHERE cod=".$num);
  5. $registro=mysql_fetch_row($resultado);
  6. echo $registro["nombre_producto"];
  #13 (permalink)  
Antiguo 06/05/2011, 17:25
 
Fecha de Ingreso: mayo-2011
Mensajes: 38
Antigüedad: 12 años, 11 meses
Puntos: 0
Respuesta: consulta y onchage

Cita:
Iniciado por alexg88 Ver Mensaje
En la consulta usas $v = $_POST["v"].

Ese parámetro "v" no le veo en tu html por ningun sitio.

Sobre lo de que no te funcionaba mi código, habría que ver que hacías en el php para recoger los datos.

Código Javascript:
Ver original
  1. $.ajax(
  2. url: "buscar_producto.php",
  3. dataType: 'text',
  4. data: {num: $('input[name="cod"]').val()},
  5. success: function(datos){
  6. $('input[name="producto"]').val(datos);}
  7. );

En el código se enviaba un parámetro num con el valor del código.

En el php lo recogerías:

Código PHP:
Ver original
  1. $num = $_GET["num"];
  2. $conexion=mysql_connect("localhost", "root", "root");
  3. mysql_select_db("COPROM", $conexion);
  4. $resultado=mysql_query("SELECT producto FROM t_mat WHERE cod=".$num);
  5. $registro=mysql_fetch_row($resultado);
  6. echo $registro["nombre_producto"];



tenias razon con lo de v sin embargo me gustaria saber que identifica la v si es el value del textbox del cod ...que realmente no se


ahora estoy con tu codigo pero no logro traer la consulta alo mejor sea por el get que pones ,ya que estoy manejando todo el formulario con post ..mira

<script language="JavaScript">

$.ajax(

url: "busqueda_producto.php",

dataType: 'text',

data: {num: $('input[name="cod"]').val()},

success: function traerDatos(datos){

$('input[name="producto"]').val(datos);}

);
</script>



<form name='formulario' id="form1" method='post' >
codigo<input type="button" name="mas" id="v" value="-" style="color:red;height:20px; width:20px" onclick= " traerDatos(); document.getElementById('cod').value = parseInt(document.getElementById('cod').value) - 1" title="" />

<input name="cod" type="text" id="cod" size="1" value="<?php //obtener un nuevo valor
mysql_connect("localhost", "root","root");
mysql_select_db("COPROM");
$sql = "select max(cod) as cod from t_mat"; // das otro nombre al campo resultado
$lib = mysql_query($sql);
$rs_lib = mysql_fetch_assoc($lib);
$ide_lib_nuevo = $rs_lib['cod'] ;
$v=$rs_lib['cod'] ;
echo $v;?>" readonly />

//en el text box del codigo busco el ultimo codigo registrado

<input type="button" name="menos" value="+" id="v" style="color:red;height:20px; width:20px" onclick=" traerDatos(); document.getElementById('cod').value = parseInt(document.getElementById('cod').value) + 1" title="" />
<br>
<br>
<br>
....etc


materia<input name="materia" type="text" id="materia" value=" " />





busqueda_producto.php


<?php

$num = $_POST["num"];

$conexion=mysql_connect("localhost", "root", "root");

mysql_select_db("COPROM", $conexion);

$resultado=mysql_query("SELECT materia FROM t_mat WHERE cod=".$num);

$registro=mysql_fetch_row($resultado);

echo $registro["materia"];
?>



  #14 (permalink)  
Antiguo 07/05/2011, 04:53
 
Fecha de Ingreso: abril-2011
Mensajes: 1.342
Antigüedad: 13 años
Puntos: 344
Respuesta: consulta y onchage

Estás liando las cosas.

Primero la v no tiene sentido. Tienes los botones con el más y el menos con el id = v, lo cual no deberías porque un id es único para una página.

Cuando intentas hacer $_POST['v'] estás intentado recoger un parámetro llamado v.
Los parámetros en los formularios se identifican por el name, no por el id.


Aun así, el formulario en este caso solo sirve para contener los input, en realidad no se manda nunca porque se realiza una petición al servidor mediante AJAX (es decir, sin recargar la página).

Yo utilizo $_GET porque con la función $.ajax lo estoy mandando como una petición GET no como POST (da igual el formulario).

Lo que deberías hacer es no mezclar todos los códigos y probar un poco más con el que te pase.

Para mirar los errores que pueden dar puedes utilizar el complemento Firebug de Firefox que te permite ver el HTML, CSS, javascript y las peticiones HTTP (incluida las de AJAX) para ver si se pasan bien los parámetros al servidor.

Por último, he visto que has puesto una función TraerDatos en los botones más o menos.
En vez de eso deberías aprovechar JQuery y utilizar el evento change con el campo de texto donde cambia el código.

Por ejemplo:

Código Javascript:
Ver original
  1. $('input[name="cod"]').change(function(){
  2. $.ajax(
  3. url: "buscar_producto.php",
  4. dataType: 'text',
  5. data: {num: $('input[name="cod"]').val()},
  6. success: function(datos){
  7. $('#materia').val(datos);}
  8. );
  9.  
  10.  
  11. });
  #15 (permalink)  
Antiguo 07/05/2011, 11:14
 
Fecha de Ingreso: mayo-2011
Mensajes: 38
Antigüedad: 12 años, 11 meses
Puntos: 0
Respuesta: consulta y onchage

Cita:
Iniciado por alexg88 Ver Mensaje
Estás liando las cosas.

Primero la v no tiene sentido. Tienes los botones con el más y el menos con el id = v, lo cual no deberías porque un id es único para una página.

Cuando intentas hacer $_POST['v'] estás intentado recoger un parámetro llamado v.
Los parámetros en los formularios se identifican por el name, no por el id.


Aun así, el formulario en este caso solo sirve para contener los input, en realidad no se manda nunca porque se realiza una petición al servidor mediante AJAX (es decir, sin recargar la página).

Yo utilizo $_GET porque con la función $.ajax lo estoy mandando como una petición GET no como POST (da igual el formulario).

Lo que deberías hacer es no mezclar todos los códigos y probar un poco más con el que te pase.

Para mirar los errores que pueden dar puedes utilizar el complemento Firebug de Firefox que te permite ver el HTML, CSS, javascript y las peticiones HTTP (incluida las de AJAX) para ver si se pasan bien los parámetros al servidor.

Por último, he visto que has puesto una función TraerDatos en los botones más o menos.
En vez de eso deberías aprovechar JQuery y utilizar el evento change con el campo de texto donde cambia el código.

Por ejemplo:

Código Javascript:
Ver original
  1. $('input[name="cod"]').change(function(){
  2. $.ajax(
  3. url: "buscar_producto.php",
  4. dataType: 'text',
  5. data: {num: $('input[name="cod"]').val()},
  6. success: function(datos){
  7. $('#materia').val(datos);}
  8. );
  9.  
  10.  
  11. });
tienes toda la razon con lo de la id a lo mejor me confundi con la id que tiene que tener el textbox del codigo ahora solo estoy haciendo pruebas con tu codigo tal cual como lo hicistes con el firebug activado sin embargo tengo una duda del onchage que debe tener el text box para validar el script muchas gracias por el empeño en ayudarme
  #16 (permalink)  
Antiguo 07/05/2011, 14:40
 
Fecha de Ingreso: abril-2011
Mensajes: 1.342
Antigüedad: 13 años
Puntos: 344
Respuesta: consulta y onchage

Es muy sencillo lo del change.

Lo que hace es que cuando cambia el valor del campo de texto, se ejecuta la función encarga de realizar la petición ajax y recoger los datos.
  #17 (permalink)  
Antiguo 07/05/2011, 23:03
 
Fecha de Ingreso: mayo-2011
Mensajes: 38
Antigüedad: 12 años, 11 meses
Puntos: 0
Respuesta: consulta y onchage

Cita:
Iniciado por alexg88 Ver Mensaje
Es muy sencillo lo del change.

Lo que hace es que cuando cambia el valor del campo de texto, se ejecuta la función encarga de realizar la petición ajax y recoger los datos.
gracias por la respuesta y la explicacion .....creo que todo esta bn menos el onchage que tengo en el text no se si lo estoy declarando bien debe ser error mio de nuevo=_=

<input name="cod" type="text" id="cantidad" size="1" value="<?php //obtener un nuevo valor
mysql_connect("localhost", "root","root");
mysql_select_db("COPROM");
$sql = "select max(cod) as cod from t_mat";
$lib = mysql_query($sql);
$rs_lib = mysql_fetch_assoc($lib);
$ide_lib_nuevo = $rs_lib['cod'] ;
echo $ide_lib_nuevo;?>" onChange="function(this);" readonly />

onChange="function(this);" <------ esta parte esta mal cierto?
  #18 (permalink)  
Antiguo 08/05/2011, 14:13
 
Fecha de Ingreso: abril-2011
Mensajes: 1.342
Antigüedad: 13 años
Puntos: 344
Respuesta: consulta y onchage

Esto:

Código Javascript:
Ver original
  1. onChange="function(this);

No se que función será function, pero si podría estar bien depende de como se esa función.

Pero de todas maneras, no te hace falta esa parte que dices si utilizas lo que te he puesto yo.

Código Javascript:
Ver original
  1. $('input[name="cod"]').change(function(){
  2. $.ajax(
  3. url: "buscar_producto.php",
  4. dataType: 'text',
  5. data: {num: $('input[name="cod"]').val()},
  6. success: function(datos){
  7. $('#materia').val(datos);}
  8. );
  9. *
  10. });

Ahí ya estás controlando el evento change si te fijas bien.
  #19 (permalink)  
Antiguo 08/05/2011, 22:19
 
Fecha de Ingreso: mayo-2011
Mensajes: 38
Antigüedad: 12 años, 11 meses
Puntos: 0
Respuesta: consulta y onchage

Cita:
Iniciado por alexg88 Ver Mensaje
Esto:

Código Javascript:
Ver original
  1. onChange="function(this);

No se que función será function, pero si podría estar bien depende de como se esa función.

Pero de todas maneras, no te hace falta esa parte que dices si utilizas lo que te he puesto yo.

Código Javascript:
Ver original
  1. $('input[name="cod"]').change(function(){
  2. $.ajax(
  3. url: "buscar_producto.php",
  4. dataType: 'text',
  5. data: {num: $('input[name="cod"]').val()},
  6. success: function(datos){
  7. $('#materia').val(datos);}
  8. );
  9. *
  10. });

Ahí ya estás controlando el evento change si te fijas bien.


gracias por la aclaracion pensaba que necesitaba el onchage en el textbox .....pero veo que no, minimo ya debes estar cansado de responderme ...o y te pido disculpas por eso sin embargo en el buscar_producto.php me sale un error : Warning: mysql_fetch_row() expects parameter 1 to be resource, boolean given in linea 23 mas exacatamente aqui

$registro=mysql_fetch_row($resultado);

sin embargo depure la consulta con el or die(mysql_error()); y me tira este error :

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1

aqui el codigo de la pagina buscar_producto.php


<?php
error_reporting(E_ERROR | E_WARNING | E_PARSE);

$num = $_GET["num"];


$conexion=mysql_connect("localhost", "root", "root");

mysql_select_db("COPROM", $conexion) or die ("Verifique la Base de Datos");


$resultado=mysql_query("SELECT producto FROM t_mat WHERE cod=".$num)or die(mysql_error());

$registro=mysql_fetch_row($resultado);

echo $registro["producto"];

?>


de nuevo gracias por tu colaboracion
  #20 (permalink)  
Antiguo 09/05/2011, 07:47
 
Fecha de Ingreso: abril-2011
Mensajes: 1.342
Antigüedad: 13 años
Puntos: 344
Respuesta: consulta y onchage

Dime que campos tiene la tabla y sus nombres.
  #21 (permalink)  
Antiguo 09/05/2011, 13:16
 
Fecha de Ingreso: mayo-2011
Mensajes: 38
Antigüedad: 12 años, 11 meses
Puntos: 0
Respuesta: consulta y onchage

Cita:
Iniciado por alexg88 Ver Mensaje
Dime que campos tiene la tabla y sus nombres.
la tabla solo tiene 2 campos cod y producto ; el nombre de la tabla es t_mat de la base de datos COPROM ,aproposito he estado investigando sobre ajax y la verdad no se si necesito una libreria de ajax o no hace falta con tu codigo ...... estoy algo enredado con eso y si se necesita la libreria no se como llamarla gracias de antemano
  #22 (permalink)  
Antiguo 09/05/2011, 13:32
 
Fecha de Ingreso: abril-2011
Mensajes: 1.342
Antigüedad: 13 años
Puntos: 344
Respuesta: consulta y onchage

Mira con el firebug si el parámetro num se envía bien al servidor.

Puedes poner un echo $num para verlo en el php también.

Luego cambia la función mysql_fetch_row por mysql_fetch_assoc porque la primera es para crear un array de índices numéricos y la segunda un array asociativo (que es lo que necesitas para poder hacer $registro["producto"].

Código PHP:
Ver original
  1. <?php
  2. error_reporting(E_ERROR | E_WARNING | E_PARSE);
  3.  
  4. $num = $_GET["num"];
  5.  
  6. echo "Parámetro num: ".$num."<br />";
  7.  
  8. $conexion=mysql_connect("localhost", "root", "root");
  9. mysql_select_db("COPROM", $conexion) or die ("Verifique la Base de Datos");
  10.  
  11. $query = "SELECT producto FROM t_mat WHERE cod=".$num;
  12.  
  13. echo "Consulta: ".$query."<br />"
  14. $resultado=mysql_query(,$conexion) or die(mysql_error());
  15.  
  16. $registro=mysql_fetch_assoc($resultado);
  17.  
  18. echo $registro["producto"];
  19.  
  20. ?>
  #23 (permalink)  
Antiguo 09/05/2011, 15:42
 
Fecha de Ingreso: mayo-2011
Mensajes: 38
Antigüedad: 12 años, 11 meses
Puntos: 0
Respuesta: consulta y onchage

Cita:
Iniciado por alexg88 Ver Mensaje
Mira con el firebug si el parámetro num se envía bien al servidor.

Puedes poner un echo $num para verlo en el php también.

Luego cambia la función mysql_fetch_row por mysql_fetch_assoc porque la primera es para crear un array de índices numéricos y la segunda un array asociativo (que es lo que necesitas para poder hacer $registro["producto"].

Código PHP:
Ver original
  1. <?php
  2. error_reporting(E_ERROR | E_WARNING | E_PARSE);
  3.  
  4. $num = $_GET["num"];
  5.  
  6. echo "Parámetro num: ".$num."<br />";
  7.  
  8. $conexion=mysql_connect("localhost", "root", "root");
  9. mysql_select_db("COPROM", $conexion) or die ("Verifique la Base de Datos");
  10.  
  11. $query = "SELECT producto FROM t_mat WHERE cod=".$num;
  12.  
  13. echo "Consulta: ".$query."<br />"
  14. $resultado=mysql_query(,$conexion) or die(mysql_error());
  15.  
  16. $registro=mysql_fetch_assoc($resultado);
  17.  
  18. echo $registro["producto"];
  19.  
  20. ?>
al ejecutarlo sale este error en la linea 37
Parse error: syntax error, unexpected ',', expecting ')' in

37 $resultado=mysql_query(,$conexion) or die(mysql_error());

arriba de esta le puse un ., que le faltaba pero no veo el error
  #24 (permalink)  
Antiguo 09/05/2011, 15:59
 
Fecha de Ingreso: abril-2011
Mensajes: 1.342
Antigüedad: 13 años
Puntos: 344
Respuesta: consulta y onchage

Le falta pasarle la query:

Código PHP:
Ver original
  1. $resultado=mysql_query($query,$conexion) or die(mysql_error());
  #25 (permalink)  
Antiguo 09/05/2011, 16:04
 
Fecha de Ingreso: mayo-2011
Mensajes: 38
Antigüedad: 12 años, 11 meses
Puntos: 0
Respuesta: consulta y onchage

Cita:
Iniciado por alexg88 Ver Mensaje
Le falta pasarle la query:

Código PHP:
Ver original
  1. $resultado=mysql_query($query,$conexion) or die(mysql_error());



listo ahora me aparece esto

Parámetro num:
Consulta: SELECT materia FROM t_mat WHERE cod=
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1

por lo que veo no esta pasando el num
  #26 (permalink)  
Antiguo 09/05/2011, 16:23
 
Fecha de Ingreso: abril-2011
Mensajes: 1.342
Antigüedad: 13 años
Puntos: 344
Respuesta: consulta y onchage

Ya he visto los errores. Me había equivocado. El evento change sólo se dispara cuando cambias el valor mediante el teclado, no mediante javascript. Por eso, tendrás que asignar los eventos click de los botones + y -.

Código Javascript:
Ver original
  1. $(function(){  
  2. $('#mas,#menos').click(function(){
  3.  $.ajax(
  4.  {
  5.  url: "buscar_producto.php",
  6.  dataType: 'text',
  7.  data: {num: $('input[name="cod"]').val()},
  8.  success:
  9.     function(datos){
  10.         $('#materia').val(datos);}    
  11.   });
  12. });
  13. });

En el html ponle el id="mas" al botón más y id="menos" al botón menos para referirte a ellos en el javascript.
Código HTML:
Ver original
  1. <input type="button" class="cambiar" name="mas" id="mas" value="-" style="color:red;height:20px; width:20px" onclick="document.getElementById('cod').value = parseInt(document.getElementById('cod').value) - 1" title="" />
  2.  
  3.     <input name="cod" type="text" id="cod" size="1" value="2" />/
  4.  
  5.     <input type="button" class="cambiar" name="menos" value="+" id="menos" style="color:red;height:20px; width:20px" onclick="document.getElementById('cod').value = parseInt(document.getElementById('cod').value) + 1" title="" />
  #27 (permalink)  
Antiguo 09/05/2011, 16:53
 
Fecha de Ingreso: mayo-2011
Mensajes: 38
Antigüedad: 12 años, 11 meses
Puntos: 0
Respuesta: consulta y onchage

Cita:
Iniciado por alexg88 Ver Mensaje
Ya he visto los errores. Me había equivocado. El evento change sólo se dispara cuando cambias el valor mediante el teclado, no mediante javascript. Por eso, tendrás que asignar los eventos click de los botones + y -.

Código Javascript:
Ver original
  1. $(function(){  
  2. $('#mas,#menos').click(function(){
  3.  $.ajax(
  4.  {
  5.  url: "buscar_producto.php",
  6.  dataType: 'text',
  7.  data: {num: $('input[name="cod"]').val()},
  8.  success:
  9.     function(datos){
  10.         $('#materia').val(datos);}    
  11.   });
  12. });
  13. });

En el html ponle el id="mas" al botón más y id="menos" al botón menos para referirte a ellos en el javascript.
Código HTML:
Ver original
  1. <input type="button" class="cambiar" name="mas" id="mas" value="-" style="color:red;height:20px; width:20px" onclick="document.getElementById('cod').value = parseInt(document.getElementById('cod').value) - 1" title="" />
  2.  
  3.     <input name="cod" type="text" id="cod" size="1" value="2" />/
  4.  
  5.     <input type="button" class="cambiar" name="menos" value="+" id="menos" style="color:red;height:20px; width:20px" onclick="document.getElementById('cod').value = parseInt(document.getElementById('cod').value) + 1" title="" />
el codigo cambio pero me sigue saliendo lo mismo de mi anterior mensaje si quieres paso el codigo tal cual como lo tengo aca
  #28 (permalink)  
Antiguo 10/05/2011, 01:19
 
Fecha de Ingreso: abril-2011
Mensajes: 1.342
Antigüedad: 13 años
Puntos: 344
Respuesta: consulta y onchage

Pasame el código completo de todo, pero ponlo con el resaltado de sintaxis para que se vea mejor.
  #29 (permalink)  
Antiguo 10/05/2011, 15:28
 
Fecha de Ingreso: mayo-2011
Mensajes: 38
Antigüedad: 12 años, 11 meses
Puntos: 0
Respuesta: consulta y onchage

Cita:
Iniciado por alexg88 Ver Mensaje
Pasame el código completo de todo, pero ponlo con el resaltado de sintaxis para que se vea mejor.
ok vale


Código Javascript:
Ver original
  1. <script language="JavaScript">
  2.  
  3.      
  4.      
  5.       $(function(){  
  6.       $('#mas,#menos').click(function(){
  7.        $.ajax(
  8.        {
  9.        url: "buscar_producto.php",
  10.        dataType: 'text',
  11.        data: {num: $('input[name="cod"]').val()},
  12.        success:
  13.           function(datos){
  14.               $('#producto').val(datos);}    
  15.         });
  16.       });
  17.       });
  18. </script>


Código HTML:
Ver original
  1. codigo<input type="button" class="cambiar" name="menos" id="menos" value="-" style="color:red;height:20px; width:20px" onclick= "  document.getElementById('cod').value = parseInt(document.getElementById('cod').value) - 1" title=""  />
  2. <input name="cod" type="text" id="cod"  size="1" value="<?php //obtener un nuevo valor
  3.  mysql_connect("localhost", "root","root");
  4.                 mysql_select_db("COPROM");
  5. $sql = "select max(cod) as cod from t_mat";
  6. $lib = mysql_query($sql);
  7. $rs_lib = mysql_fetch_assoc($lib);
  8. $ide_lib_nuevo = $rs_lib['cod'] ;
  9. echo $ide_lib_nuevo;?>"
  10.  readonly />
  11. <input type="button" name="mas" class="cambiar" value="+" id="mas"  style="color:red;height:20px; width:20px" onclick="  document.getElementById('cod').value = parseInt(document.getElementById('cod').value) + 1" title=""  />
  12. <br>
  13. <br>
  14.  
  15. producto<input name="producto" type="text" id="producto" value="  " /> <br>



buscar_producto.php
Código PHP:
Ver original
  1. <?php
  2.       error_reporting(E_ERROR | E_WARNING | E_PARSE);
  3.       $num = $_GET["num"];
  4.       echo "Parámetro num: ".$num."<br />";
  5.       $conexion=mysql_connect("localhost", "root", "root");  
  6.       mysql_select_db("COPROM", $conexion) or die ("Verifique la Base de Datos");
  7.       $query = "SELECT pruducto FROM t_mat WHERE cod=".$num;
  8.       echo "Consulta: ".$query."<br />";
  9.   $resultado=mysql_query($query,$conexion) or die(mysql_error());
  10.       $registro=mysql_fetch_assoc($resultado);
  11.       echo $registro["producto"];      
  12.  
  13.       ?>

ese es el codigo que tengo aca
  #30 (permalink)  
Antiguo 10/05/2011, 17:38
 
Fecha de Ingreso: abril-2011
Mensajes: 1.342
Antigüedad: 13 años
Puntos: 344
Respuesta: consulta y onchage

Creo que el único problema que tienes es que en la consulta en vez de productos pones pruductos.

Lo demás está todo perfecto.

Para darte el toque perfecto yo haría que al principio también te apareciese el producto del cual estás mostrando el código.

Código HTML:
Ver original
  1. codigo<input type="button" class="cambiar" name="menos" id="menos" value="-" style="color:red;height:20px; width:20px" title="" onclick="  document.getElementById('cod').value = parseInt(document.getElementById('cod').value) - 1">
  2. <input name="cod" type="text" id="cod" size="1" value="<?php //obtener un nuevo valor
  3.   mysql_connect("localhost", "root","root");
  4.    mysql_select_db("COPROM");
  5. $sql = "select producto,cod from t_mat having max(cod)";
  6. $lib = mysql_query($sql);
  7. $rs_lib = mysql_fetch_assoc($lib);
  8. $ide_lib_nuevo = $rs_lib['cod'] ;
  9. $producto =  $rs_lib['producto'] ;
  10. echo $ide_lib_nuevo;?>" readonly="">
  11. <input type="button" name="mas" class="cambiar" value="+" id="mas" style="color:red;height:20px; width:20px" onclick="  document.getElementById('cod').value = parseInt(document.getElementById('cod').value) + 1" title="">
  12. <br>
  13. <br>
  14.  
  15. producto<input name="producto" type="text" id="producto" value="<?php echo $producto  ?>"> <br>

Etiquetas: ajax
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 11:26.