我要达到的目标是:
如果输入为空,用户将不会被重定向到update.php页面,但是如果输入的值不为空,用户将被重定向到update.php,并使用我所说的输入的相应id。。
到目前为止,我还没能做到这一点,这就是我目前所拥有的:
我正在处理backend-search.php文件,它将隐藏的输入字段提供给我的index.php页面,而主页是index.php页面。。
以下是相关代码:
(后端搜索.php)
if(isset($_REQUEST['term'])){
$sql = "SELECT * FROM productslist WHERE brand LIKE ?";
if($stmt = mysqli_prepare($link, $sql)){
$param_term = '%'.$_REQUEST['term'].'%'; mysqli_stmt_bind_param($stmt, 's', $param_term);
if(mysqli_stmt_execute($stmt)){
$result = mysqli_stmt_get_result($stmt);
if(mysqli_num_rows($result) > 0){
while($row = mysqli_fetch_array($result, MYSQLI_ASSOC)){
echo '<p>'.$row['brand'].' - '.$row['wgtvol'].''.$row['unit'].'('.$row['generic'].') <input id="hiddenid" type="hidden" value="'.$row['id'].'" /></p>';
}
}
else{
echo '<p style="color: #FFFFFF; background: #b20101; font-weight: 700; "> No matching records found, brand name is still available.</p>';
}
} else{
echo "ERROR: Could not able to execute $sql. " . mysqli_error($link);
}
}
mysqli_stmt_close($stmt);
}
以及my index.php中的相关代码:
<div class="search-box pull-left">
<input id="search" class="m-top m-bot" type="text" autocomplete="off" placeholder="Search by brand">
<div class="result" id="result"></div>
</div>
<script type="text/javascript">
$(document).ready(function(){
$('.search-box input[type="text"]').on("keyup input", function(){
var inputVal = $(this).val();
var resultDropdown = $(this).siblings(".result");
if(inputVal.length){
$.get("backend-search.php", {term: inputVal}).done(function(data){
resultDropdown.html(data);
});
} else{
resultDropdown.empty();
}
});
$(document).on("click", ".result p", function(){
$(this).parents(".search-box").find('input[type="text"]').val($(this).text());
$(this).parent(".result").empty();
var link = "view-or-add-stock-modal.php?id=";
console.log(link);
console.log($(this).text());
window.location = link + $(this).find('input[type=hidden]').val(); ;
});
});
</script>
请忍受我的代码编写,因为我是一个屏幕阅读器用户,我只依赖于这项技术,因为我有视觉残疾。。
虽然我尝试了我所做的这种变化,但仍然不起作用:
<script type="text/javascript">
$(document).ready(function(){
$('.search-box input[type="text"]').on("keyup input", function(){
var inputVal = $(this).val();
var resultDropdown = $(this).siblings(".result");
if(inputVal.length){
$.get("backend-search.php", {term: inputVal}).done(function(data){
resultDropdown.html(data);
});
} else{
resultDropdown.empty();
}
});
$(document).on("click", ".result p", function(){
$(this).parents(".search-box").find('input[type="text"]').val($(this).text());
$(this).parent(".result").empty();
var link = "view-or-add-stock-modal.php?id=";
console.log(link);
console.log($(this).text());
window.location = link + $(this).find('input[type=hidden]').val(); ;
if ($("input:text").val().replace(/^\s+|\s+$/g, "").length == 0){
$('.search-box input[type="text"]').hide();
}
});
});
</script>
我愿意接受任何相关的解释,如果有人能提供。。
提前谢谢。。如果版主要把这个标记为复制,我正在寻找一个具体的答案和准确的解释,所以请不要在没有完全阅读整个帖子的情况下立即标记这个。
1条答案
按热度按时间xu3bshqb1#
如问题评论中所述。
我会坚持你的第一个解决方案,只是改变一些代码
更改后立即发生重定向
window.location
. 因此,在单击当前<p>
元素有一个隐藏的输入(如果它不是空的话)。否则不会发生重定向,用户将停留在当前页面上-在这种情况下,您可能希望显示一些其他信息。顺便说一句(我的观点)-一切都是可能的-所以如果你想让你的代码做一些事情,它是可以架构的-但是你需要知道你想要什么:-)
编辑:如果你想保留用户的输入只需删除这一行
在这里,您将文本框输入设置为单击的
p
-在任何情况下,这可能不是你想要的