omn*_*ath 6 php mysql checkbox radio-button
我的用户数据库中有两个表.
第一个表包含用户唯一ID,名称,联系人号码和其他个人信息.
第二个表包含来自第一个表的用户的唯一ID以及设备信息,例如他的第一个机器号,第二个机器号以及许多其他.
我的表没有2结构是..
在报告页面上,我使用此表格以表格形式显示所有信息
$sql = "SELECT e.* ,d.* FROM emitra_basic As e INNER JOIN emitra_device as d ON d.uid=e.uid";
$result = $conn->query($sql);
if ($result->num_rows>0) {?>
<table ><tr><td> Uid</td><td> Name</td>
<td> Micro Atm</td>.......and all column of both tables </tr>
<?php while($row = $result->fetch_array()) {
echo "<td>". $row['uid']. "</td>";
echo "<td>". wordwrap($row['name'],15,"\n",1). "</td>"; ....and all
} echo "</table>";
Run Code Online (Sandbox Code Playgroud)
它工作正常.但我想展示一份定制报告.这意味着我想为表字段的用户提供复选框/单选按钮.如果他选择字段使用复选框,则其仅显示选中复选框/单选按钮的那些值.它喜欢用户选择三个复选框/单选按钮,如Uid,name,m_atm.它仅显示来自两个表的三列的详细信息,并相应地显示这些列.
如果我理解你,要做到这一点,你需要添加ON d.uid=e.uid"这样的东西ON d.uid=e.uid" AND Uid=$id AND name=$name And m_atm=$atm,或者将其添加到哪里(where我觉得不好)
例如
HTML:
<form method="get" action="/a.php">
<input type="checkbox" name="check1" value="text1"/>
<input type="checkbox" name="check2" value="text2"/>
<input id="submit" onclick="f();return false;" type="button" value="ok"/>
</form>
Run Code Online (Sandbox Code Playgroud)
PHP(测试.php)
if(isset($_GET['check1'])) $id=" AND Uid='$_GET[check1]'"; //if is checked first
if(isset($_GET['check2'])) $name=" AND name='$_GET[check2]'"; //if is checked second
/* . . . */
$sql = "SELECT e.* ,d.* FROM emitra_basic As e INNER JOIN emitra_device as d ON (d.uid=e.uid $id $name )";
var_dump($sql);
Run Code Online (Sandbox Code Playgroud)
JS:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>
<script>
function f() {
var url;
var xmlhttp,
url="/text.php?"+$('form').serialize(); //change text.php
if (window.XMLHttpRequest) {
xmlhttp = new XMLHttpRequest();
} else if (window.ActiveXObject) {
xmlhttp = new ActiveXObject('Microsoft.XMLHTTP');
}
xmlhttp.open('GET', url, true);
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4) {
myfunction(xmlhttp.responseText);
}
}
xmlhttp.send(null);
function myfunction(response) { alert(url+' '+response);
//do something
}
}
</script>
Run Code Online (Sandbox Code Playgroud)
这段Php代码很简单,但是你可以使用循环和键值让它看起来更好
例如,您可以用于<input name=text[]>所有 ceckboxes 元素并执行此操作
foreach ($_GET['text'] as $key => $value) {
if($key==0) $key='uid'; else
if($key==1) $key='name'; else
if($key==2) $key='m_atm';
$q.="$key='$value' AND ";
}
$q=substr($q,0,strlen($q)-5);
$sql2 = "SELECT e.* ,d.* FROM emitra_basic As e INNER JOIN emitra_device as d ON (d.uid=e.uid $q )";
var_dump($sql2);
Run Code Online (Sandbox Code Playgroud)