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】:在<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 是解决这个问题的好朋友。
【讨论】:
【参考方案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】:尝试实现这个:
创建一个隐藏的文本区域(将保存与单选按钮对应的数据)
为<tr>
和<td>
分配一个动态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 - 检索与单选按钮对应的所有数据的主要内容,如果未能解决你的问题,请参考以下文章