PHP - Como enviar un parámetro en especifico con AJAX

   
Vista:

Como enviar un parámetro en especifico con AJAX

Publicado por Pablo Espinoza (3 intervenciones) el 15/06/2017 02:40:19
Tengo una etiqueta así:
1
<a href="eliminarBD_notas.php?it=<?php echo $row['ID']?>"><IMG style="width:18px; height:18px; padding-top:5px" SRC="Imagenes/eliminar.png"></a>

Que hace esta consulta:
1
2
3
4
5
<?php
$sql_eliminar_nota="DELETE FROM notas WHERE ID=".$_GET['it'];
$result8=mysqli_query($con,$sql_eliminar_nota);
header("location:P2_principal.php");
?>

Obviamente me envía a otra página y lo que necesito es que elimine el elemento sin tener que recargar la página inicial.

¿Hay alguna forma de enviar ese parámetro de la etiqueta a través de AJAX y si fuera con un input y el método POST como le paso ese parámetro "it"?

Muchas gracias de antemano.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Como enviar un parámetro en especifico con AJAX

Publicado por Yamil Bracho (655 intervenciones) el 15/06/2017 02:47:58
Simplemente le agregar un parametro a la URL y la separas por "&"
Te quedaria, por ejemplo :
1
<a href="eliminarBD_notas.php?accion=0&it=<?php echo $row['ID']?>"><IMG style="width:18px; height:18px; padding-top:5px" SRC="Imagenes/eliminar.png"></a>

Accion=0, no quieres redireccinar, accion=1 o no existe quieres redireccionar paar que no cambies en las demas partes donde quieras redireccionar

Y en tu PHP

1
2
3
4
5
6
7
8
9
<a href="eliminarBD_notas.php?accion=0&it=<?php echo $row['ID']?>"><IMG style="width:18px; height:18px; padding-top:5px" SRC="Imagenes/eliminar.png"></a>
 
<?php
$sql_eliminar_nota="DELETE FROM notas WHERE ID=".$_GET['it'];
$result8=mysqli_query($con,$sql_eliminar_nota);
 
if (!isset($_GET['accion'])) {
	header("location:P2_principal.php");
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Como enviar un parámetro en especifico con AJAX

Publicado por Pablo Espinoza (3 intervenciones) el 15/06/2017 02:57:55
Gracias de verdad pero no funciono, el simbolo "&" es mostrado como un error y aunque consegui la manera de que funcionara el action=0 separandolo con otro ? igual se nota que trata de recargar y vuelve a la pagina P2_principal. Existira alguna forma de enviar ese parametro ?it con de jquery para usar ajax.?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de kip

Como enviar un parámetro en especifico con AJAX

Publicado por kip (861 intervenciones) el 15/06/2017 05:09:36
Hola, intentalo con lo siguiente:

El boton deberia quedar asi:
1
2
3
<a href="#" data-id="<?php echo $row['ID']?>">
    <img style="width:18px; height:18px; padding-top:5px" src="Imagenes/eliminar.png">
</a>

El codigo JS usando $.post() de jQuery:
1
2
3
4
5
6
7
8
9
10
11
$('a').on('click', function(e) {
    e.preventDefault();
    if (this.hasAttribute('data-id')) {
        var data = {
            it: $(this).attr('data-id')
        };
        $.post('archivo.php', data, function(response) {
            alert(response);
        });
    }
});

Tu archivo.php:
1
2
3
4
5
6
7
8
9
<?php
if ( ! isset($_POST['it']) || empty($_POST['it'])) die();
$sql_eliminar_nota = "DELETE FROM notas WHERE ID = {$_POST['it']}";
if (mysqli_query($con, $sql_eliminar_nota)) {
    echo 'Nota eliminada con éxito!';
} else {
    echo 'Error: ' . mysqli_error($con);
}
die();

Pruebalo y nos cuentas.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Como enviar un parámetro en especifico con AJAX

Publicado por Pablo Espinoza (3 intervenciones) el 17/06/2017 20:36:21
Hola, gracias por tu respuesta, aunque funciona sigue dejándome en la pagina de eliminarBDnotas.php, sigue redireccionando yo utilizo el siguiente método para agregar las notas pendientes al contenedor:

HEAD:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<script>
        //CREAR NOTA
        $(document).ready(function() {
                $("#btn_nota").click(function(){ //El boton input del formulario de notas
                var url = "registroBD_notas.php"; // El script a dónde se realizará la petición.
                $.ajax({
                type: "POST",
                url: url,
                data: $("#form_notas").serialize(), // Adjuntar los campos del formulario enviado.
                success: function(data)
                {
                $(".cont_app_notas_nota1").html(data); // Mostrar la respuestas del script PHP.
                }
                });
                return false; // Evitar ejecutar el submit del formulario.
                });
                });
        </script>

BODY:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<div class="cont_app_notas">
    <div class="cont_app_notas_header">
        <form id="form_notas" method="post">
            <input class="input_nota_nueva" id="" type="text" name="nota_nueva" maxlength="300" placeholder="Escriba una nota...">
            <!--BOTON A MODO DE IMAGEN QUE ES EL INPUT QUE ENVIA LOS DATOS A LA BD-->
            <input class="btn_app_notas_guardar" id="btn_nota" type="submit" name="guardar_nota" value="" style="background: url(Imagenes/icono_disquete.png) no-repeat center center; background-size:cover">
        </form>
    </div>
    <div class="cont_app_notas_nota1">
        <?php
        $sql_nota_guardada = "SELECT * FROM notas";//CONSULTA
        $result6=mysqli_query($con,$sql_nota_guardada);
        while ($row = mysqli_fetch_assoc($result6)){?>
            <table>
            <tr>
                    <td style="width:500px; font-family:calibri"><?php echo "&nbsp&nbsp".$row['NOTA'];?></td>
                    <td><a href="eliminarBD_notas.php?it=<?php echo $row['ID']?>"><IMG style="width:18px; height:18px; padding-top:5px" SRC="Imagenes/eliminar.png"></a></td>
            </tr>
            </table>
            <?php } ?>
    </div>
</div>

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
$nota_nueva=$_POST['nota_nueva'];
$email = $_SESSION['inicio_sesion'];
 
if ((isset($_SESSION['inicio_sesion'])) && ($_SESSION['inicio_sesion'] != "")){
 
$sql_insert_nota="INSERT INTO notas(CORREO,NOTA) VALUES ('$email','$nota_nueva')"; //INSERT
$result7=mysqli_query($con,$sql_insert_nota);
 
$sql_nota_guardada = "SELECT * FROM notas";//CONSULTA
$result6=mysqli_query($con,$sql_nota_guardada);
while ($row = mysqli_fetch_assoc($result6)){?>
        <table>
        <tr>
                <td style="width:500px; font-family:calibri"><?php echo "&nbsp&nbsp".$row['NOTA'];?></td>
                <td><a id="btn_del_nota" href="eliminarBD_notas.php?it=<?php echo $row['ID']?>"><IMG style="width:18px; height:18px; padding-top:5px" SRC="Imagenes/eliminar.png"></a></td>
        </tr>
        </table>
<?php } }?>


Y ME CREA Y MUESTRA UNA NOTA SIN RECARGAR LA PAGINA, QUIERO HACER LO MISMO AL ELIMINAR CADA UNA DE LAS NOTAS CREADAS SIN RECARGAR LA PAGINA Y NO LO LOGRO.

Muchas gracias de antemano.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar