我有一個實時搜索設定,并且使用 post value 可以正常作業。我想在我的資料庫查詢中添加一個涉及額外“post”值的引數。這是使用 php 和 ajax。
變數 $school 顯示在文本欄位中,并由 $_GET['sch'] 值填充。執行 ajax 時查詢顯示為空。(使用回聲 $Query)
當“回顯”時,&Query 看起來像這樣:
SELECT * FROM Teachers WHERE FullName LIKE %test% and shcool_id = ''
這是PHP
<?php
if (isset($_POST['search'])) {
$school = $_GET['sch'];
$Name = $_POST['search'];
$Query = "SELECT * FROM teachers WHERE fullName LIKE '%$Name%' AND school_id='$school' ";
$ExecQuery = MySQLi_query($conn, $Query);
echo '<div style="text-align:left;">';
while($Result = MySQLi_fetch_array($ExecQuery)) {
?>
<a href="?id=<?php echo $Result['teacher_id']; ?>&sch=<?php echo $Result['school_id']; ?>" type="button" width="100%" onclick='fill("<?php echo $Result['fullName']; ?>")' class="list-group-item list-group-item-action">
<?php echo $Result['fullName']; ?>
</a>
<?php
}
}
$conn->close();
?>
</div>
這是腳本檔案:
function fill(Value) {
$('#search').val(Value);
$('#display').hide();
}
$(document).ready(function() {
$("#search").keyup(function() {
var name = $('#search').val();
if (name == "") {
$("#display").html("");
}
else {
$.ajax({
type: "POST",
url: "ajax.php",
data: {
search: name
},
success: function(html) {
$("#display").html(html).show();
}
});
}
});
});
這是表格:
<div class="input-group" style="margin-top: 5.5em;">
<button class="btn btn-outline-primary dropdown-toggle" type="button" data-bs-toggle="dropdown" aria-expanded="false">Search By</button>
<ul class="dropdown-menu">
<li><a class="dropdown-item" href="/isbn/title/?sch=<?php echo $_GET['sch']; ?>">Book Title</a></li>
<li><a class="dropdown-item" href="/isbn/author/?sch=<?php echo $_GET['sch']; ?>">Author</a></li>
<li><a class="dropdown-item" href="/isbn/teacher/?sch=<?php echo $_GET['sch']; ?>">Teacher</a></li>
</ul>
<input placeholder="<?php echo $placeholder; ?>" class="form-control" aria-label="Text input with dropdown button"
onblur="this.focus()" onfocus="this.value=''" type="text" id="search" autocomplete="off" <?php echo $disabled; ?> />
<input class="form-control" type="text" id="school" value="<?php echo $_GET['sch']; ?>" />
<br>
<div id="display" style="width: 100%;"></div>
</div>
我試圖分配資料。我嘗試添加 var = school 等 我嘗試在 PHP 頁面上直接添加 GET 值,我可以看到該值填充在 id="school" 文本框中。
data: {
search: name, school: school
},
到ajax檔案
uj5u.com熱心網友回復:
在 ajax 呼叫之前獲取您的查詢引數。
let sch = '';
let queryParms = new URLSearchParams(window.location.search);
if (queryParms) {
sch = queryParms.get('sch');
}
...
$.ajax({
type: "POST",
url: "ajax.php",
data: {
search: name,
sch: queryParms.get('sch')
},
success: function(html) {
$("#display").html(html).show();
}
});
在后端使用并檢查非空值。
$_POST['sch'];
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/524191.html
標籤:php阿贾克斯
上一篇:當整個串列很長(10000)時,識別所有串列對的最快方法,它們的差異低于給定閾值
下一篇:在運行時交換字體真棒圖示
