如何从具有相同类的按钮获取值使用JQuery

时间:2016-12-07 14:25:07

标签: javascript php jquery html ajax

我有一个PHP脚本,根据数据库记录生成n个按钮作为输出。每个值都与相应的按钮相关联。

当我点击任何按钮时,我总是得到第一个按钮的值。

如何获取仅点击按钮的值?

<button class='btn btn-danger question_delete' value=".$row['action_id']."</button>

我的jQuery脚本:

$(document).ready(function(){
    $(".question_delete").click(function(){
        var action_value = $(this).val();
        if(action_value){
            $.ajax({
                type:'POST',
                url:'delete_question_group.php',
                data:{delete_action:action_value},
                success:function(data){
                     refresh_table();
                     refresh_paper();
                }
            }); 
        }else{
           // $('#select_qtype_list').html('<option value="">Select Question First</option>');
        }
    });
});

我的PHP:

<?php
session_start();
$name =$_SESSION['name'];
$id = $_SESSION['id'];
include("database.php");
$run = mysqli_query($conn,"select * from users where id='$id' AND name='$name' "); 
$user = mysqli_fetch_array($run);
$subject_id = $user['subject_id'];
$user_name = $user['name'];
$run1 = mysqli_query($conn,"select * from subject where sub_id='$subject_id'");
$subject = mysqli_fetch_array($run1);
$subject_name = $subject['sub_name'];

    $query = $conn->query("select * from action where subject_id='$subject_id' AND user_id='$id'");

        //Count total number of rows
    $rowCounts = $query->num_rows;

    //Display states list
    if($rowCounts > 0){
        $i=1;
        while($row = $query->fetch_assoc()){ 

            //echo '<option value="'.$row['qtype_id'].'">'.$row['qtype_name'].'</option>';
            echo "<tr>";
            //$q_id = $query['question_id'];
            //$question_type_id = $query['question_type_id'];
            echo "<td>$i</td>";
            echo "<td>".$row['action_name']."</td>";
            echo "
            <td>
                <button class='btn btn-danger question_delete' value=".$row['action_id'].">
                    <i class='fa fa-trash' aria-hidden='true'>
                    </i>
                </button>
            </td>
            <td>
                <button id='question_update' class='btn btn-primary' data-toggle='modal' data-target='#myModal_update' value=".$row['action_id'].">
                    <i class='fa fa-pencil' aria-hidden='true' >
                    </i>
                </button>
            </td>  
            </tr>


            ";
            $i++;
        }
    }else{
        echo '<td colspan="4" style="text-align: center; color:red;"><strong>No Questions are Selected</string></option>';
    }

?>

2 个答案:

答案 0 :(得分:0)

可能是因为每个按钮上的值内的属性action_id不会改变。你忘了关闭按钮标签,也许这就是为什么它没有工作

<button class='btn btn-danger question_delete' value=".$row['action_id']."></button>

答案 1 :(得分:0)

- 这个问题得到了解决并且工作得很好。解决方案描述如下:

- 使用了第一个onclick属性。并创建function,每当按钮单击时,它会获取按钮的值。

遵循守则:

<button class='btn btn-danger' onclick='myfunction(this.value)' id='question_delete' value=".$row['action_id']."><i class='fa fa-trash' aria-hidden='true'></i></button>

JQuery代码:

$(document).ready(function(){
    myfunction1 = function(e){
        if(e){
            $.ajax({
                type:'POST',
                url:'update_question_group.php',
                data:{update_action:e},
                success:function(html){
                    $('#update_action_list').html(html);
                    $('#update_action_list').selectpicker('refresh');
                }
            }); 
        }else{
           // $('#select_qtype_list').html('<option value="">Select Question First</option>');
        }
    }
});