Tengo un botón aquí:
<button type="button" class="btn btn-primary">add me</button> Traté de usar AJAX; en mi base de datos tengo un sp_status (en mi $UserData que es una matriz). Quería cambiar el usuario sp_status en la base de datos con la identificación de $UserData['sp_id'] del valor 5 a 0. Aquí está el código con el que intento hacer esto:
<script> $(document).ready(function(){ $(".btn").click(function(){ alert("PROBLEM IS HERE!"); $.ajax({ url: "update.php", type: "POST", data: {uid: $UserData['sp_id']}, //this sends the user-id to php as a post variable, in php it can be accessed as $_POST['uid'] success: function(data){ data = JSON.parse(data); } }); }); }); </script> La matriz $UserData tiene sp_id como identificador del usuario. Dentro de update.php en la misma carpeta escribí este código:
<?php if(isset($_POST['uid'])){ $query = mysql("UPDATE `signup_participant` SET sp_status = 0 WHERE sp_id = ".$_POST['uid'])); $results = mysql_fetch_assoc($query); echo json_encode($results); } Hay dos problemas principales con los que me enfrento. Primero cuando me muevo alert("PROBLEM IS HERE!"); una línea hacia abajo, y haga clic, no pasa nada.
El otro problema es sobre update.php . Copio y pego UPDATE signup_participant SET sp_status = 0 WHERE sp_id =10 (valor estático de 10) y todo funciona bien en la consola de phpMyadmin.
Leí muchas preguntas aquí en la pila, pero nadie ayuda. ¿Alguien puede arreglar esto?
EDITAR: como dijeron mis amigos, cambio mi código a esto (la parte AJAX):
<script> $(document).ready(function(){ $(".btn").click(function(){ alert('Hello'); $.ajax({ url: "update.php", type: "POST", data: {uid: "<?php echo $UserData['sp_id'];?>"} success: function(data){ data = JSON.parse(data); } }); }); }); </script>Lo extraño es que la alerta emergente ya no se muestra. ¿Hay alguna idea?
Sí, tienes que cometer errores:
El primero es "$UserData['sp_id']" que llamó en un código Javascript, no está claro qué quiere decir con esta variable o de dónde proviene, si es un valor de un elemento Html, entonces debería ser :
data: {uid: $('#sp_id').val();},Y si es una variable Php sería:
data: {uid: <?php $UserData['sp_id']; ?>},El siguiente error está en el código del servidor Php:
$query = mysql("UPDATE `signup_participant` SET sp_status = 0 WHERE sp_id = ".$_POST['uid'])); $results = mysql_fetch_assoc($query);Esos dos comandos están separados, el primero es para actualizar la base de datos y el segundo para mostrar los resultados y deben ser como sigue:
$query = "UPDATE `signup_participant` SET sp_status = 0 WHERE sp_id = ".$_POST['uid']; mysql_query($query); $query = "SELECT * from `signup_participant` WHERE sp_id = ".$_POST['uid']; $select = mysql_query($query); $results = mysql_fetch_assoc($select);