Hola, a ver si podeis echarme una mano, estoy intentado pasar variables desde javascript a php mediante ajax y usando json, me gustaria saber si lo hago de la forma correcta, el principal problema que tengo es que trabajo con una base de datos y los resultados no se actualizan al momento, por eso no se si es que hago algo mal.
Este es el codigo del javascript
:
Código HTML:
function actualizar(nosi, num, pos) {
var opciones = { // función para recibir la respuesta
method : 'get',
parameters : {opcion:nosi, nj:num}
}
new Ajax.Request('actualizar.php', opciones);
procesar(pos);
}
function procesar(pos) {
cambiar(pos);
}
Y este el php:
Código PHP:
<?php
$link = mysql_connect('localhost', 'bd1', 'bd1');
mysql_select_db('bd1');
$query = "UPDATE tabla SET seleccionado = '".$HTTP_GET_VARS['opcion']."' WHERE nplayer ='".$HTTP_GET_VARS['nj']."'";
mysql_query($query);
mysql_free_result($result);
mysql_close($link);
?>
La cosa es que funcionar funciona, pero me resulta raro que luego al ejecutar cambiar(pos); funciona correctamente unas veces y otras veces no porque tarda en actualizar los datos, lo que hace cambiar() es leer coger de la base de datos informacion (la que actualizo con el update del php) y mostrarla actualizada.
Para mostrar obtener esa informacion y mostrarla de nuevo hago esto:
codigo javascript
:
Código HTML:
function obtener(pos) {
var opciones = {
onSuccess: function(t) {
objetos = eval(t.responseText);
procesar2(objetos, pos);
}
}
new Ajax.Request('obtener.php', opciones);
}
function procesar2(objetos, pos) {
lugar = document.getElementById("general");
codigo='<table> con un for se genera una tabla con lo extraido, probado que funciona correctamente';
codigo+='</table>';
lugar.innerHTML = codigo;
}
codigo php:
Código PHP:
<?php
$link = mysql_connect('localhost', 'bd1', 'bd1');
mysql_select_db('bd1');
$query = "SELECT * FROM tabla";
$result = mysql_query($query);
$datos = array();
while ($line = mysql_fetch_array($result)) {
$datos[]=$line;
}
print json_encode($datos);
mysql_free_result($result);
mysql_close($link);
?>
Como os imaginais todo esto viene porque es la primera vez que uso Ajax y mysql, en resumen lo que me gustaria saber es si paso bien las variables de javascript a php y el porque de ese retardo en la actualizacion de la tabla, en algunas casos es tanto que me muestra los datos supuestamente actualizados sin actualizar.
Un saludo y gracias.