如果输入为空,php mysql jquery javascript不重定向

vbkedwbf  于 2021-06-18  发布在  Mysql
关注(0)|答案(1)|浏览(269)

我要达到的目标是:
如果输入为空,用户将不会被重定向到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>

我愿意接受任何相关的解释,如果有人能提供。。
提前谢谢。。如果版主要把这个标记为复制,我正在寻找一个具体的答案和准确的解释,所以请不要在没有完全阅读整个帖子的情况下立即标记这个。

xu3bshqb

xu3bshqb1#

如问题评论中所述。
我会坚持你的第一个解决方案,只是改变一些代码

$(this).parent(".result").empty();

var link = "view-or-add-stock-modal.php?id=";
console.log(link);
console.log($(this).text());

var hiddenInputElem = $(this).find('input[type=hidden]');
//check first if the hidden Input Field is available and has a value
if(hiddenInputElem.length > 0 && hiddenInputElem.val().trim() != ""){
    window.location = link + hiddenInputElem .val();
}

更改后立即发生重定向 window.location . 因此,在单击当前 <p> 元素有一个隐藏的输入(如果它不是空的话)。否则不会发生重定向,用户将停留在当前页面上-在这种情况下,您可能希望显示一些其他信息。
顺便说一句(我的观点)-一切都是可能的-所以如果你想让你的代码做一些事情,它是可以架构的-但是你需要知道你想要什么:-)
编辑:如果你想保留用户的输入只需删除这一行

$(this).parents(".search-box").find('input[type="text"]').val($(this).text());

在这里,您将文本框输入设置为单击的 p -在任何情况下,这可能不是你想要的

相关问题