enter image description here
嗨,大家好,我遇到以下问题:
在网址中
“ /media.php?module=riwayat&noreg=00020517”
显示所有带有'noreg = 00020517'的数据。我想在单击“ cari”按钮后,使用在文本框中输入的“关键字”过滤显示的数据。如何不更改网址?
“ riwayat.php”上的代码为:
switch($_GET[act]){
default:
$aksi="modul/riwayat/aksi_riwayat.php";
$table = 'pasien';
$noreg = $_GET[noreg];
$text = "SELECT * FROM $table WHERE noreg = $noreg";
$sql1 = mysql_query($text);
$row1 = mysql_num_rows($sql1);
echo "<div id='dalam_content'>
<h2>RIWAYAT PASIEN</h2>
<div id='info_pasien'>
";
if ($row1>0){
while ($r=mysql_fetch_array($sql1)){
$lahir =new DateTime($r['tgl_lahir']);
// Convert Ke Date Time
$today = new DateTime();
$umur = $today->diff($lahir);
echo "
<table>
<tr>
<td>NO REG.</b></td>
<td><b>: $r[noreg]</b></td>
</tr>
<tr>
<td>Nama</b></td>
<td><b>: $r[nama_pasien]</b></td>
</tr>
<tr>
<td>Tgl Lahir</b></td>
<td><b>: ".jin_date_str($r[tgl_lahir])."</b></td>
</tr>
<tr>
<td>Jenis Kelamin</b></td>
<td><b>: $r[kelamin]</b></td>
</tr>
<tr>
<td>Alamat</b></td>
<td><b>: $r[alamat]</b></td>
</tr>
<tr>
<td>UMUR</b></td>
<td><b>: "; echo $umur->y; echo " Tahun, "; echo $umur->m; echo " Bulan, dan "; echo $umur->d; echo " Hari"; echo "</b></td>
</tr>
</table>
</div>";
}}
echo"
<div id='tampil_data1'>
<div id='tombol-cari'>
<form method=POST action='$aksi?module=riwayat&act=cari' enctype='multipart/form-data'>
<input name=kata type=text size=23 maxlength=50 />
<input type=submit value=Cari>
<input type=hidden name=noreg value=$noreg>
</form>
<input type=button value='Pemeriksaan Baru' onclick=\"window.location.href='?module=riwayat&act=periksabaru&noreg=$noreg';\">
</div>
<table id='theTable' width='100%'>
<tr>
<th width='10%'>Tanggal</th>
<th>Pemeriksaan</th>
<th>Terapi</th>
</tr>";
$kata = trim($_POST['kata']);
$kata = htmlentities(htmlspecialchars($kata), ENT_QUOTES);
$table2 = 'riwayat';
$where3 = "WHERE noreg= $noreg AND pemeriksaan LIKE '%$kata%' OR terapi LIKE '%$kata%'";
$sql3 = "SELECT * FROM $table2 $where3 ORDER BY id ASC";
$query3 = mysql_query($sql3);
while($rows=mysql_fetch_array($query3)){
if ($kata==$kata){
$pemeriksaan=$rows[pemeriksaan];
$pemeriksaan = preg_replace( "/$kata/i", '<span style="background-color:yellow;">' . $kata . '</span>', $pemeriksaan );
$terapi=$rows[terapi];
$terapi = preg_replace( "/$kata/i", '<span style="background-color:yellow;">' . $kata . '</span>', $terapi );
}
else {
$pemeriksaan=$rows[pemeriksaan];
$terapi=$rows[terapi];
}
echo "
<tr>
<td align='center'>".jin_date_str($rows[tgl_periksa])."</td>
<td>$pemeriksaan</td>
<td>$terapi</td>
</tr>";
}
echo "
</table>";
break;
而“ aksi_riwayat.php”代码为:
$module=$_GET[module];
$act=$_GET[act];
$noreg= $_POST[noreg];
// Input pemeriksaanbaru
if ($module=='riwayat' AND $act=='input'){
mysql_query("INSERT INTO riwayat(tgl_periksa,
noreg,
pemeriksaan,
terapi)
VALUES('$_POST[tgl]',
'$_POST[noreg]',
'$_POST[pemeriksaan]',
'$_POST[terapi]')");
header('location:../../media.php?module=riwayat&noreg='.$noreg);
}
// Input Cari
elseif ($module=='riwayat' AND $act=='cari'){
header('location:../../media.php?module=riwayat&noreg='.$noreg);
}
最佳答案
您可以为此目的使用AJAX。
单击提交按钮后,您必须将数据传递到服务器并从服务器端获取响应。一旦获得数据,就必须在目标位置上进行渲染。
This link将使您更好地了解如何集成AJAX。
以下是来自以上链接的示例代码:
<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script>
$(document).ready(function(){
$("button").click(function(){
$.post("demo_test_post.asp",
{
name: "Donald Duck",
city: "Duckburg"
},
function(data,status){
alert("Data: " + data + "\nStatus: " + status);
});
});
});
</script>
</head>
<body>
<button>Send an HTTP POST request to a page and get the result back</button>
</body>
</html>
如果还有疑问,请告诉我。
关于php - 如何通过单击提交按钮在PHP页面的同一链接上显示搜索数据?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45410914/