я работаю над живым поиском. После написания ссылки подряд с помощью 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;
}
Я ожидаю, что строка результатов поиска в реальном времени должна быть кликабельной, и нажатие на конкретный результат или строку должно привести к желаемой странице, но моя ссылка на результаты поиска в реальном времени не работает.
похоже, что у вас есть модальная функция jquery, определенная в document.ready.. не делайте этого. Переместите функцию наружу, это должно решить проблему с неперехваченной ссылкой. Чтение этот вопрос и этот тоже



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


В <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.'""> , чтобы он мог начать работать?
Если я правильно понимаю, вы хотите сделать всю строку "кликабельной", правильно? В этом случае лучше всего было бы обернуть <tr> в <a>. то есть <a href = "conversation.php?value=$id"><tr>...</tr></a>
Да, вы правильно понимаете. Я пробовал, как вы говорите, вот так: <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>. но все равно не работает
Спасибо за ваши усилия. Я скопировал код и вставил его. Но не повезло. все еще безответственный
Можете ли вы предоставить следующую информацию: - снимок экрана с результатом вывода (как он выглядит в браузере) - как выглядит ссылка в devtool - Что происходит, когда вы нажимаете на строку?
Хорошо..Поработав над этим много раз, я нашел решение, которое работает для меня. Это так
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;
}
После этого вся моя строка теперь кликабельна.
Будет немного сложно отлаживать (без полной картины). Как насчет
modal is not defined. В данном случае это ошибка javascript.