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

时间:2015-07-21 10:45:12

标签: javascript php html mysql sql

我使用的是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      
                }
            }
?>

3 个答案:

答案 0 :(得分:2)

在每个<td>行中添加隐藏的输入字段。例如:

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

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

 <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是你解决这个问题的朋友。

答案 1 :(得分:1)

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

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

答案 2 :(得分:0)

尝试实施此目的:

  1. 创建一个隐藏的textarea(将保存与单选按钮对应的数据)

  2. clc;clear;close all % // Random data...thanks Luis Mendo x = -20+50*rand(1,50); y = 150*rand(1,50); z = -5+10*rand(1,50); %// Get indices for various regions in your data region1 = find(z>=-4 & z<-2); region2 = find(z>=-2 & z<0); region3 = find(z>=0 & z<2); region4 = find(z>=2 & z<4); %// Draw each region with its own color/size scatter3(x(region1),y(region1),z(region1),20,'r','filled') hold on scatter3(x(region2),y(region2),z(region2),40,'y','*') scatter3(x(region3),y(region3),z(region3),60,'g','filled') scatter3(x(region4),y(region4),z(region4),80,'b') grid on view(-33, 14) <tr>分配动态ID(唯一),点击相应的单选按钮后,创建JS函数,该函数将捕获该行的所有数据,如果是单击新收音机,它将清除旧数据并将其替换为新数据。

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

  4.   

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

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

    看,如果有帮助。