【问题标题】:Sending selected option as php value using a while loop使用while循环将选定的选项作为php值发送
【发布时间】:2021-04-26 16:47:55
【问题描述】:

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

我尝试过的: 在移动到下面的脚本页面之前,我使用 while 循环来填充表格和一些 jquery 在 url 上添加选定的选项

    <?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 和桌子上的第一个用户, 将不胜感激有关如何进行此操作的指导。提前谢谢

【问题讨论】:

    标签: javascript php jquery dropdown


    【解决方案1】:

    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() );
        });  
    });
    

    试试下面的 sn-p。

    $(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>

    【讨论】:

    • 相同的结果,这只会为循环中的第一个用户提交相同的值,我希望将值作为数字,以便我可以在 php 中添加点
    • 这项工作非常感谢,唯一的问题是 while 循环只分配第一个 ID,因此对于每个用户,它会将 $id 作为 1 发送
    猜你喜欢
    • 2022-11-30
    • 2016-07-18
    • 2014-09-13
    • 2014-01-15
    • 2016-08-11
    • 2017-01-07
    • 1970-01-01
    • 1970-01-01
    • 2016-08-03
    相关资源
    最近更新 更多