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
sin imagen de perfil
Val: 1.071
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Como enviar un parámetro en especifico con AJAX

Publicado por Yamil Bracho (888 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
Val: 2.325
Plata
Ha disminuido 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Como enviar un parámetro en especifico con AJAX

Publicado por kip (877 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