AJAX - Pasar valor de variable de AJAX a PHP

   
Vista:
Imágen de perfil de JetLagFox

Pasar valor de variable de AJAX a PHP

Publicado por JetLagFox (1 intervención) el 27/03/2017 00:31:34
Buenas,

Intengo explicar la situación lo mejor que pueda. Todo este problema viene tan sólo porque quiero crear un botón de "me gusta" personalizado. Estoy usando un pequeño formulario, dentro hay un <label> y un checkbox (en oculto). Al pulsar sobre <label> el checbox se selecciona o se deselecciona.

Código HTML:

1
2
3
4
echo "<form  name='like' id='heart' title='Me gusta el post' action='foro.php?foro=Xbox%20One&subforo=General&hilo=Vamos%dale&ID=1' method='post'>";
    echo "<input type='checkbox' id='corazon' name='corazon'>";
    echo "<label class='fa fa-heart' onclick='myFunction($respuesta_id)' for='corazon'></label>";
echo "</form>";

Al hacer click sobre <label> se ejecuta una función, un script, que es el siguiente:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<script>
        function myFunction(respuesta_id) {
          let heart;
          var id_respuesta = respuesta_id;
 
          if( $('#corazon').prop('checked') ) {
            console.log('Seleccionado');
            heart = 1;
          } else {
            console.log('No seleccionado');
            heart = 0;
          }
          console.log(id_respuesta);
          console.log(heart);
 
          $.ajax ({
            type: 'POST',
            url: 'proces_like.php',
            data: { "corazon": heart, "id_respuesta":id_respuesta },
            success:function(datos){
              $("#resultado").html(datos);
            }
          });
        };
        </script>

Y en process.php, recibo el parámetro del valor del checkbox:

1
2
3
4
5
6
7
8
9
10
11
12
13
session_start();
 
require 'admin/config.php';
 
try {
    $conexion = new PDO($bd_config['dbname'], $bd_config['usuario'], $bd_config['password'] );
} catch (Exception $e) {
    echo "Error: " . $e->getMessage();
}
 
 
echo $hola = isset($_POST['corazon'])? $_POST['corazon'] : 0;
echo $respuesta_id;

El problema es que la variable $respuesta_id no existe, porque no se envía de AJAX A PHP, y no sé cómo pasarla...en AJAX puedo ver el valor de la variable, pero hasta ahí. El motivo por el que necesito pasar dicha variable es porque hace referencia de la ID del comentario sobre el que se está pulsando "me gusta", y ése dato es el que me va a permitir actualizar la base de datos.

No sé si me he explicado lo suficientemente bien. Espero que alguien me pueda ayudar.

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
Imágen de perfil de Alejandro

Pasar valor de variable de AJAX a PHP

Publicado por Alejandro (14 intervenciones) el 28/03/2017 01:05:02
Hola, prueba cambiar esta linea:

1
echo "<label class='fa fa-heart' onclick='myFunction('<?php echo $respuesta_id ?> ')'  for='corazon'></label>";

Con la linea anterior debería pasar como parámetro el contenido de $respuesta_id y no '$repuesta_id' como string.

Nos Comentas.
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

Pasar valor de variable de AJAX a PHP

Publicado por kip (10 intervenciones) el 28/03/2017 02:58:16
Hola, en proces_like.php deberias hacer esto:

1
2
3
$corazon= isset($_POST['corazon']) ? $_POST['corazon'] : 0;
$respuesta_id = isset($_POST['id_respuesta']) ? $_POST['id_respuesta'] : 0;
echo $respuesta_id . ' - ' . $corazon;

Prueba de esa forma.
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 Ferney

Pasar valor de variable de AJAX a PHP

Publicado por Ferney (2 intervenciones) el 27/04/2017 00:10:31
Hola, no se si entendí bien pero puedes ver este vídeo haber si te ayuda.

Suerte.
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
Revisar política de publicidad