Cuando hago clic en todos los botones, la salida será la misma (es decir, 1). Quiero mostrar el valor específico del botón especificado para EJEMPLO: - Cuando hago clic en el botón 1, debe mostrar la salida como 1 y cuando hago clic en 2 debe mostrar la salida como 2.por favor ayúdame.

enter image description here

<?php
    for ($i=0; $i < 10 ; $i++) { 
    echo '<br><button value="'.$i.'" class="my_remark_btn">'.$i.'</button>';
 }
?>

<script type="text/javascript">

    $('.my_remark_btn').click(function(){
        remark_aftr_click();  
    });

     function remark_aftr_click(){
        var k = $(".my_remark_btn").val();  
         $.ajax({url: "my_remark_act.php",
             cache: true,
             type: "POST",
             data: {go:k},
            success: function(data_remark_mi){
                alert(data_remark_mi);
           }
         });
      }

</script>

My_remark_act.php: -

<?php echo $_POST['go']; ?>
3
Nirikshan Bbusal 12 ene. 2017 a las 09:28

5 respuestas

La mejor respuesta

Necesita $(this).attr("value") como a continuación: -

<script type="text/javascript">
    $('.my_remark_btn').click(function(){
        var k = $(this).attr("value");
        $.ajax({url: "my_remark_act.php",
             cache: true,
             type: "POST",
             data: {go:k},
            success: function(data_remark_mi){
                alert(data_remark_mi);
            }
         });
     });
</script>

Ejemplo:-

$('.my_remark_btn').click(function(){
  var k = $(this).attr("value");
  alert(k);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button value ="1" class="my_remark_btn">1</button><br>
<button value ="2" class="my_remark_btn">2</button>
0
Anant Singh---Alive to Die 12 ene. 2017 a las 06:52

Prueba esto

jQuery

$('.my_remark_btn').click(function(){ // when a button is clicked
    var value = $(this).value; // get the value of that specific button
    alert(value); // alert the value to the page (to make sure it is correct)
    remark_aftr_click(value);  // run function, with value as a parameter
});

function remark_aftr_click(val){  
    $.ajax({
        url: "my_remark_act.php",
        cache: true,
        type: "POST",
        data: {go: val}, // post data to Ajax with CORRECT value
        success: function(data){
            alert(data); // alert returned data
        }
    });
}

Por qué su código no funcionaba :

Cuando recuperaba el value de .my_remark_btn antes, solo obtenía el value del primer elemento con esa clase específica.

Cómo puedes hacer que funcione :

En su lugar, debe pasar value como parámetro dentro de su function (mientras usa this como selector para obtener el valor de ese botón específico).

Espero que esto ayude :-)

1
GROVER. 12 ene. 2017 a las 06:46
$('body').append("<button data-value='val' class='my_remark_btn'>val</button>")

$(document).on('click', '.my_remark_btn', function() {
alert($(this).attr('data-value'))
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
  1. El botón no tiene value.
  2. Utilice atributos de datos como data-value.
  3. Consíguelo como $(this).attr('data-value') usando este contexto para el botón presionado.
  4. Utilice la delegación de eventos para elementos agregados dinámicamente.
2
Anant Singh---Alive to Die 12 ene. 2017 a las 06:57

Puedes usar JQuery. prueba el siguiente código.

      // this will fire for all button having class '.my_remark_btn'
      $('.my_remark_btn').click(function(){

           // using $(this) you will get the current element
            var value = $(this).val();
            console.log(value);
      });

En su código, está accediendo al valor en var k = $(".my_remark_btn").val();, esto solo devolverá el valor del botón first con la clase my_remark_btn.

1
Arun CM 12 ene. 2017 a las 06:40

Prueba este ejemplo.

<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Insert title here</title>
<script
    src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<script>

$( document ).ready(function() {
    $("button").click(function() {
        alert(this.id); // or alert($(this).attr('id'));
    });
});
  </script>
</head>
<body>
    <button id="some_id1"></button>
<button id="id2"></button>
<button id="id3"></button>
<button id="id4"></button>
<button id="id5"></button>
</body>
</html>
2
Sanjay 12 ene. 2017 a las 07:14