PHP - 检索与单选按钮对应的所有数据

Posted

技术标签:

【中文标题】PHP - 检索与单选按钮对应的所有数据【英文标题】:PHP - retrieving all the data corresponding to a radio button 【发布时间】:2015-10-10 18:41:56 【问题描述】:

我正在使用 php,但经验较少。我在表格中显示数据,该表格在每一行的开头都有一个单选按钮。我想检索与我检查的单选按钮对应的行中存在的所有数据。 这是我到目前为止所做的事情:

<form name="test" method="POST">
        <table>
            <tr>
                <th></th>
                <th>book_id</th>
                <th>card no</th>
                <th>fname</th>
                <th>lname</th>
            </tr>
        
<?php
            $conn = mysql_connect("localhost", "root", "");
            if ($conn) 
                mysql_select_db("library");
             else 
                echo 'no such database';
            

$query_test = "select book_id2,a.card_no,fname,lname from book_loans a, borrower b where a.card_no = b.card_no ";

            $result = mysql_query($query_test);

            if ($result === FALSE) 
                mysql_error();
             else 

                while ($rows = mysql_fetch_assoc($result)) 
                    echo "<tr>";
                    echo "<td><input type='radio' name='test'></td>";
                   echo "<td>" .$rows['book_id2']. "</td>";
                   echo "<td>" .$rows['card_no']. "</td>";
                    echo "<td>" .$rows['fname']. "</td>";
                    echo "<td>" .$rows['lname']. "</td>";

                    echo "</tr>";
                
            

       ?>

 <input type="submit" name="test_val" value="submit"/>
        </table>
        </form>

这里我想打印数据,即 book_id、card_no、fname、lname,因为点击了提交按钮:

<?php

if($_POST)
            
                if(isset($_POST['test_val']))
                
                 // TO PRINT THE DATA CORRESPONDING TO THE RADIO BUTTON      
                
            
?>

【问题讨论】:

您可以通过将表格放入表单并单击单选按钮调用javascript函数来提交表单,然后根据发布的数据显示,或者可以为每次点击使用ajax请求 【参考方案1】:

&lt;td&gt; 的每一行中添加隐藏的输入字段。例如:

echo "<td>".$rows['book_id2']."</td><input type='hidden' name ='book_id2' value='".$rows['book_id2']."' />";

我尝试过编写 JavaScript,但这在 JQuery 中要容易得多。在结束 &lt;/body&gt; 标记之前添加这些脚本。

 <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
 <script>
    var toggleInput = function()
        $('input[type=hidden]').prop('disabled', true);
        var selection = $('input:checked').eq(0);
            selection.parent().parent().find('input[type=hidden]').each(function()
               $(this).prop('disabled',false);
            );
        
        $(form).on('submit',toggleInput);
 </script>

JQuery 经常用于像这样操作 DOM。它消除了许多在 JavaScript 中可以看到的重复。虽然如果只使用 JavaScript 更容易做某事,那就去做吧!

在提交表单时,我们将禁用所有隐藏元素。然后我们找到激活的单选框,并激活单选框对应的隐藏元素。

这是一种解决方案,可能需要进行调整。 JavaScript 和 JQuery 是解决这个问题的好朋友。

【讨论】:

【参考方案2】:

您可以将数据添加为单选按钮的值属性

echo "<input type='radio' name='test' value='".$rows['book_id2']." ".$rows['card_no']." ".$rows['fname']." ".$rows['lname']."'>";

那么post变量的名字就是单选按钮的名字

if(isset($_POST['test']))

    echo $_POST['test'];

另一个例子,访问单个值:

echo "<input type='radio' name='test' value='".addslashes( json_encode($rows) )."'>";

if(isset($_POST['test']))

    $result = json_decode( stripslashes($_POST['test']) ) ;
    echo $result->book_id2;
    echo $result->card_no;
    echo $result->fname;
    echo $result->lname;

【讨论】:

成功了,谢谢。你能告诉我是否有任何方法可以从“测试”中获取个人价值,即 book_id、card_no 等以供进一步使用。【参考方案3】:

尝试实现这个:

    创建一个隐藏的文本区域(将保存与单选按钮对应的数据)

    &lt;tr&gt;&lt;td&gt; 分配一个动态ID(唯一),然后单击相应的单选按钮,创建JS 函数,该函数将捕获该行的所有数据,如果单击一个新的单选按钮,它将清除旧数据并替换为新数据。

    提交数据,您就可以捕获所需的数据。

您需要的功能(内置和用户定义):

1 $( "#tr_unique td_unique" )[.text()][1]; // text() Since you are storing data in td else it would be val() 2 insertData(number)// Here number is the row # through which you'll track corresponding data 3$( "#hidden_textarea" )[.val][1]('data')

看看,如果这有帮助。

【讨论】:

以上是关于PHP - 检索与单选按钮对应的所有数据的主要内容,如果未能解决你的问题,请参考以下文章

从 php 中检索单选按钮的 mysql 值

如何将值从 DB 传递到单选按钮组?

java单选按钮传值

将 TextView 与单选按钮标签对齐

与单选按钮关联的复选框

jQuery如何将“禁用剪切和粘贴脚本”与单选按钮列表结合起来?