使用 while 循环将所选选项作为 php 值发送

Sending selected option as php value using a while loop

我想做什么: 我有一个 while 循环,它列出了 mysql 数据库中的每个用户,每个用户前面都有一个下拉 select 选项,最后一列前面有一个按钮,目标是 select 一个值从下拉菜单中使用按钮提交到 php 脚本,该脚本会插入您为特定的 select 编辑的值。

我尝试过的: 我使用 while 循环填充 table 和一些 jquery 在 url 上添加 selected 选项,然后移动到下面的脚本页面

    <?php 
while ($a = mysqli_fetch_array($result0)){
                                                                
$id=$a['id'];
$fname = $a['fname'];
$lname = $a['lname'];

$a = 5;
$b = 10;
$c = 20;
$d = 25;
                                                                


$sql1 = "SELECT * FROM users where id =$ref";
$result1 = $conn->query($sql1);
$row1 = $result1->fetch_assoc();

$ref_name = $row1['fname'] ." ". $row1['lname'] ;

                                                            
    echo "<tr>
    
    <td class='h5 text-white text-center d-none d-sm-table-cell'>$id</td>
    <td class='h5 text-white font-w600'>$fname ". $lname."</td>
     <td>
    <select id='rank' name='rank'>
    <option value='$a'>Attended Seminar (5pts)</option>
    <option value='$b'>Inspection Trip (10pts)</option>
    <option value='$c'>No Chilled(20pts)</option>
    <option value='$d'>Test Activity (25pts)</option>
    </select>
    </td>
    "?>
    <td class='h5 text-white text-center'>
    <div class='btn-group'>
     <a class='btn-rank' href="../actions/update_rank.php?id=<?php echo $id ?>&rank="><button type='button' class='btn btn-sm btn-success js-tooltip-enabled' data-toggle='tooltip' title='' data-original-title='Verify'>
     <i class='fa fa-check'></i>
    </button>
    </div>
                                                                        
    </td>
    
    </tr>";
     }
    ?>      

我用来附加选项的 js

$(function () {
var a = $('a.btn-rank');
a.attr('href', a.attr('href') + $('#rank').val())
 });

到目前为止,我只得到第一个值 $a 和 table 上的第一个用户, 将感谢任何有关如何进行此操作的指导的帮助。提前致谢

PHP 有很多语法和格式错误。试试下面的代码。

<?php 
    while ($a = mysqli_fetch_array($result0)){
                                                                
        $id    = $a['id'];
        $fname = $a['fname'];
        $lname = $a['lname'];

        $a = 5;
        $b = 10;
        $c = 20;
        $d = 25;

        $sql1 = "SELECT * FROM users where id =$ref";
        $result1 = $conn->query($sql1);
        $row1 = $result1->fetch_assoc();

        $ref_name = $row1['fname'] ." ". $row1['lname'] ;

            ?><tr><?php                                                       
                echo 
                '
                <td class="h5 text-white text-center d-none d-sm-table-cell">'.$id.'</td>
                <td class="h5 text-white font-w600">'.$fname.' '. $lname.'</td>
                <td>
                    <select id="rank" name="rank">
                        <option value='.$a.'>Attended Seminar (5pts)</option>
                        <option value='.$b.'>Inspection Trip (10pts)</option>
                        <option value='.$c.'>No Chilled(20pts)</option>
                        <option value='.$d.'>Test Activity (25pts)</option>
                    </select>
                </td>
                ';
                ?>
                <td class="h5 text-white text-center">
                    <div class="btn-group">
                        <a class="btn-rank" href="../actions/update_rank.php?id=<?php echo $id ?>&rank="><button type="button" class="btn btn-sm btn-success js-tooltip-enabled" data-toggle="tooltip" title="" data-original-title="Verify"><i class="fa fa-check"></i></button></a>
                    </div>                                                    
                </td>
            </tr>
    }
?>

$(document).ready(function(){
    var href =  $('.btn-rank').attr('href');
    $('.btn-rank').attr('href',href + $('#rank').val() );

    $('#rank').change(function(){
        $('.btn-rank').attr('href',href + $(this).val() );
    });  
});

试试下面的代码片段。

$(document).ready(function(){
    var href =  $('.btn-rank').attr('href');
    $('.btn-rank').attr('href',href + $('#rank').val() );

    $('#rank').change(function(){
        $('.btn-rank').attr('href',href + $(this).val() );
    });  
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<select id="rank" name="rank">
    <option value="Attended Seminar (5pts">Attended Seminar (5pts)</option>
    <option value="Inspection Trip (10pts)">Inspection Trip (10pts)</option>
    <option value="No Chilled(20pts)">No Chilled(20pts)</option>
    <option value="Test Activity (25pts)">Test Activity (25pts)</option>
</select>
<a class="btn-rank" href="../actions/update_rank.php?id=12345&rank=" >Button</a>