Ayuda con el uso de php, ajax y mysql

Buena esta vez le escribo para solicitar la ayuda en lo que estoy haciendo vamos a ver si me logro explicar

estoy realizando una consulta a mi BD en la cual una vez vista la informacion tengo un boton para cambiar el status de uno de los campos de mi consulta para no recargar el formulario estoy usando ajax para realizar el cambio de status hasta hay voy bien la falla es que al realizar el update del campo yo solo quiero cambiarlo en un registro pero el programa me lo realizan en todos es decir si tengo tres registros y realizo el update en el registro uno cuando ejecuto el programa el me cambia el estatus de los otros registros tambien espero haberme explicado bine aqui les dejo el codigo

Archivo de COnexion

<?PHP
Para conectarnos con el mysql y la base de datos */
$con = mysql_connect("localhost","root","root");
if(! $con){ die ("ERROR CONEXION MYSQL: " . Mysql_error());}
$db= mysql_select_db("online",$con);
if (! $db){die ("ERROR CONEXION BD: " . Mysql_error());}
?>

Archivo de Funciones

<script>
var xmlhttp;
function load(str, url, cfunc)
{

if (window.XMLHttpRequest)
{
xmlhttp=new XMLHttpRequest();
}
else
{
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=cfunc;
xmlhttp.open("POST",url,true); // AQUÍ LE DECIMOS QUE VAMOS A ENVIAR LOS DATOS POR POST
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xmlhttp.send(str);
}

function metodoAjax(datos, ruta) //METODO AJAX QUE RECIBE 2 PARAMETROS, LOS DATOS A ENVIAR Y EL ARCHIVO QUE LOS RECIBE
{

load(datos, ruta, function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("cuerpo").innerHTML=xmlhttp.responseText; //MOSTRAMOS LOS DATOS EN EL DIV CON ID CUERPO
}
});
}
//------------------------------------------------------------------
function recibe(id){ //FUNCION QUE SE EJECUTA CUANDO PRESIONAMOS EL BOTON ENVIAR
var dato = document.getElementById('status').value;//OBTENEMOS LOS DATOS DEL CAMPO DE TEXTO
//var id = document.getElementById(id).value;
//var dato1 = document.getElementById('radio').value;
alert (id )
metodoAjax("valor="+dato+"id="+id,"ejecuta.php"); //EJECUTAMOS EL METODO AJAX Y LE PSASMOS LOS DATOS, Y LE DECIMOS QUE ARCHIVO ES EL QUE RECIBE LOS DATOS
}
</script>

1 Respuesta

Respuesta

Tu problema es que te falta un ampersand sustituye

metodoAjax("valor="+dato+"id="+id,"ejecuta.php");

por

metodoAjax("valor="+dato+"&id="+id,"ejecuta.php");

Al no indicar el ampersand antes del id, el sistema no te estaba filtrando el cambio por id y te los pone todos.

:)

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas