Как сделать всю строку кликабельной в живом поиске

я работаю над живым поиском. После написания ссылки подряд с помощью ajax она перестает отвечать

это код, который я сделал

//пусть имя этой страницы index.php

<div>
      <input type = "search" id = "searchterm" name = "searchterm" placeholder = "Search" >   
</div>
<table id = "result"></table>

//это скрипт index.page

<script>
$(document).ready(function(){
    load_data();
    function load_data(query)
    {
        $.ajax({
            url:"search.php",
            method:"post",
            data:{query:query},
            success:function(data)
            {
                $('#result').html(data);
            }
        });
    }



$('#searchterm').keyup(function(){
        var search = $(this).val();
        if (search != '')
        {
            load_data(search);
        }
        else
        {
            load_data();            
        }
    });
});
</script>

//эта страница search.php

$output='';
if (isset($_POST["query"]))
 {
    $keyword=mysqli_real_escape_string($conn, $_POST["query"]);
    $query = "SELECT uid,name,lastname ,profile_pic,about FROM comnet_user_details WHERE uid!='$uid' AND concat_ws(' ',name, lastname) LIKE UPPER('%$keyword%')";

 $result=mysqli_query($conn,$query);



if (mysqli_num_rows($result) > 0)
 {
while($r=mysqli_fetch_array($result))
    {
        $nm=$r["name"]." ".$r["lastname"];
        $profilepic=$r["profile_pic"];
        $about=$r["about"];
        $id=$r["uid"];





  $output .=
     '<table class = "msgtab" id = "fetchresult">

      <tr  class = "trow" onclick = "location.href = "conversation.php?value='.$id.'"">

     <td class = "msg-col-1"><img src = "images/profilepic/'.$r["profile_pic"].'alt = "Avatar" class = "circlemsg"></td>

     <td class = "msg-col-2">
        <h5 class = "msgheading">'.$nm.'</h5>
        <p class = "msgcontent">'.$about.'</p>

        </td>
        </tr>;
        }
         echo $output;
}

Я ожидаю, что строка результатов поиска в реальном времени должна быть кликабельной, и нажатие на конкретный результат или строку должно привести к желаемой странице, но моя ссылка на результаты поиска в реальном времени не работает.

Будет немного сложно отлаживать (без полной картины). Как насчет modal is not defined. В данном случае это ошибка javascript.

mub 07.02.2019 21:27

похоже, что у вас есть модальная функция jquery, определенная в document.ready.. не делайте этого. Переместите функцию наружу, это должно решить проблему с неперехваченной ссылкой. Чтение этот вопрос и этот тоже

Rachel Gallen 08.02.2019 01:57
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
2
193
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий
  • В <img src = "images/profilepic/'.$r["profile_pic"].'alt = "Avatar" class = "circlemsg"> есть опечатка Это должен быть <img src = "images/profilepic/'.$r["profile_pic"].'" alt = "Avatar" class = "circlemsg">

  • Кроме того, profile_pic также имеет расширение (например: «jpg, png»)?

Редактировать:

Не могли бы вы заменить этот фрагмент кода на этот (надеюсь, он будет работать): - создать table - в цикле while -> создать каждую строку <tr> - затем закрыть table

if (mysqli_num_rows($result) > 0) {

   $output = '<table class = "msgtab" id = "fetchresult">'; 

while($r=mysqli_fetch_array($result))
    {
        $nm=$r["name"]." ".$r["lastname"];
        $profilepic=$r["profile_pic"];
        $about=$r["about"];
        $id=$r["uid"];


    $output .=
    '<a href = "conversation.php?value='.$id.'">
    <tr class = "trow">
    <td class = "msg-col-1"><img src = "images/profilepic/'.$r["profile_pic"].'" alt = "Avatar" class = "circlemsg"></td>
    <td class = "msg-col-2">
    <h5 class = "msgheading">'.$nm.'</h5>
    <p class = "msgcontent">'.$about.'</p>
    </td>
    </tr>
    </a>';

    }

$output .= '</table>';

echo $output;

}

хорошо. есть ли у вас какие-либо идеи, как мне написать ссылку в <tr class = "trow" onclick = "location.href = "conversation.php?value='.$id.'""> , чтобы он мог начать работать?

Serene 07.02.2019 17:41

Если я правильно понимаю, вы хотите сделать всю строку "кликабельной", правильно? В этом случае лучше всего было бы обернуть <tr> в <a>. то есть <a href = "conversation.php?value=$id"><tr>...</tr></a>

mub 07.02.2019 17:53

Да, вы правильно понимаете. Я пробовал, как вы говорите, вот так: <a href = "conversation.php?value='.$id.'"> <tr class = "trow"> <td class = "msg-col-1"><img src = "images/profilepic/'.$r["profile_pic"].'" alt = "Avatar" class = "circlemsg"></td> <td class = "msg-col-2"> <h5 class = "msgheading">'.$nm.'</h5> <p class = "msgcontent">'.$about.'</p> </td> </tr> </a>. но все равно не работает

Serene 07.02.2019 18:02

Спасибо за ваши усилия. Я скопировал код и вставил его. Но не повезло. все еще безответственный

Serene 07.02.2019 19:07

Можете ли вы предоставить следующую информацию: - снимок экрана с результатом вывода (как он выглядит в браузере) - как выглядит ссылка в devtool - Что происходит, когда вы нажимаете на строку?

mub 07.02.2019 19:26

Хорошо..Поработав над этим много раз, я нашел решение, которое работает для меня. Это так

if (mysqli_num_rows($result) > 0) {

   $output = '<table class = "msgtab" id = "fetchresult">'; 

while($r=mysqli_fetch_array($result))
    {
        $nm=$r["name"]." ".$r["lastname"];
        $profilepic=$r["profile_pic"];
        $about=$r["about"];
        $id=$r["uid"];


    $output .=
'<table class = "msgtab" id = "fetchresult">

      <tr  class = "trow" onclick=location.href = "conversation.php?value='.$id.'">

     <td class = "msg-col-1"><img src = "images/profilepic/'.$r["profile_pic"].'" alt = "Avatar" class = "circlemsg"></td>

     <td class = "msg-col-2">
        <h5 class = "msgheading">'.$nm.'</h5>
        <p class = "msgcontent">'.$about.'</p>

        </td>
        </tr>';

   }


$output .= '</table>';
echo $output;

}

После этого вся моя строка теперь кликабельна.

Другие вопросы по теме