AJAX - Pasar variable PHP onClick a Script Ajax

 
Vista:

Pasar variable PHP onClick a Script Ajax

Publicado por Facon (2 intervenciones) el 11/12/2016 20:14:25
Hola a todos.
Tengo el siguiente código en la misma página:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<input type="button" name="numero" id="numero" onClick="enviar_variable();" value="<?php echo $row['id']; ?>">
 
<script>
 function enviar_variable()
{
	dataString = {id: 'id'};
$.ajax({
        type: "POST",
        url: "add_carrito_3.php",
        data: dataString,
        cache: false,
 
        success: function(){
            alert("Producto agregado al carrito");
        }
    });
}
</script>

Lo que pretendo es pasar la variable <?php echo $row['id']; ?> a la variable id del script.
Tambien me puede servir cualquier otro script mientras envie el valor pos POST.
Alguien me puede echar una mano?

Muchas gracias.
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 xve
Val: 90
Oro
Ha mantenido su posición en AJAX (en relación al último mes)
Gráfica de AJAX

Pasar variable PHP onClick a Script Ajax

Publicado por xve (222 intervenciones) el 12/12/2016 08:24:44
Hola Facon, seria algo así:
1
dataString = {id: document.getElementById("numero").value};

Coméntanos, ok?
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

Pasar variable PHP onClick a Script Ajax

Publicado por Facon (2 intervenciones) el 12/12/2016 21:36:09
Hola.

El código que me has pasado funciona correctamente. Recoge la variable. Yo creo recordar que tambien habia conseguido pasar la
variable pero tenía el mismo problema. Siempre coge el id del primer producto mostrado.

Verás. Tengo el siguiente código (al final de este escrito). Si hago un href y paso la variable id por url no hay problema ya que php crea un enlace con una id diferente para cada producto encontrado. Al hacer clic en el enlace vas a la ficha del producto y al comprar sale el alert de producto comprado de manera que el alert sale en primer plano y la página se difumina viendo de fondo el producto.

El problema viene cuando quiero hacer lo mismo si quiero comprar sin entrar en la ficha del producto. Si hago el mismo procedimiento
anterior no hay problema solo que tengo que mandar la variable id a una pagina php donde se agrega perfectamente pero se queda
el navegador con la pantalla en blanco. Cosa fea para el usuario. Si hago un header location en el php que agrega el producto no es muy elegante pero tampoco me funciona.

Por eso había pensado crear botones con el value del id. El problema es que siempre coge la primera id del primer producto que me
aparece en mi página. Me imagino que el value es diferente pero el nombre del input y del script (numero) es el mismo para todos los valores.

No se como resolver este tema de una manera elegante de manera que si quiero comprar sin ver la ficha del producto salga el alert
en primer plano y los productos en segundo plano oscurecido.

Muchas gracias y un saludo.

<?php
foreach ($stmt as $row) {
//Declaramos las variables para recoger los datos del objeto $row y utilizar en el script línea 199
$id=$row['id'];
$producto=$row['producto'];
$precio=$row['precio'];
$cantidad=$row['cantidad'];
?>

<div class="image"><a href="https://www.miweb.es/fichaproducto?id=<?php echo $row["id"]; ?>">
<img src="/consultas/ver_imagen_tabla_2.php?id=<?php echo $row["id"]; ?>" width="200" height="200"></a></div>
<h4><?php echo $row['producto']; ?></h4>
<p style="text-align:justify;"><?php echo $row['descripcion']; ?></p>
<p class="price"><?php echo "€ ".$row['precio']." euros"; ?></p>

<div class="btn" style="width:59%; background-color:#FFC0C1; font-weight:bold;"><a href="https://www.miweb.es/add_carrito_3.php?id=<?php echo $row["id"]; ?>">Añadir al carrito</a>
</div>

<div class="btn" style="width:40%; background-color:#FFC0C1; font-weight:bold;"><a href="https://www.miweb.es/fichaproducto.php?id=<?php echo $row["id"]; ?>">Ver ficha</a>
</div>

<input type="button" name="numero" id="numero" onClick="enviar_variable();" value="<?php echo $row['id']; ?>">

</div>
</div>

<?php
}
?>

<script>
function enviar_variable()
{
dataString = {id: document.getElementById("numero").value};
$.ajax({
type: "POST",
url: "add_carrito_3.php",
data: dataString,
cache: false,
success: function(){
alert("Producto agregado al carrito);
}
});
}
</script>
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