我使用的是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
}
}
?>
答案 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)
尝试实施此目的:
创建一个隐藏的textarea(将保存与单选按钮对应的数据)
为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函数,该函数将捕获该行的所有数据,如果是单击新收音机,它将清除旧数据并将其替换为新数据。
提交数据,您可以捕获所需的数据。
您需要的功能(内置和用户定义):
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 }
看,如果有帮助。