Используя jquery, чтобы связать символы в форме с изображениями в MySQL - PullRequest
1 голос
/ 06 ноября 2011

Новичок-любитель здесь, поэтому большое спасибо заранее за любую помощь. Я схожу с ума здесь.

Я пытаюсь разработать скрипт jquery для поиска в mysql изображений, хранящихся в моей базе данных, через php. Пользователь вводит слово в поле ввода. Каждый символ , введенный в это слово, возвращает отдельную иллюстрацию (например, введите f-l-o-w-e-r и получите шесть соответствующих изображений). С некоторой помощью я получил скрипт php, работающий нормально с обычной HTML-формой. Но теперь, когда я попытался добавить часть jquery, все соединяется нормально и, кажется, работает так, как я хочу, но вместо изображений я получаю только пустые поля со значком «сломанное изображение».

Я прилагаю основные сценарии на странице find.php ниже. После этого идет страница index.php с jquery. Любые мысли высоко ценятся ...

$lettertype = str_split($lettertype);  
$lettertype = "'" . implode("','", $lettertype) . "'";   
$query = "SELECT * FROM Photos WHERE letter IN ($lettertype)"; 
$result = mysqli_query($cxn, $query) 
      or    die ("No good");    
$alpharray = array(); 
     while($row = mysqli_fetch_assoc($result)) 
         {
           $alpharray[$row['search_term']][] = $row; //
         }
       foreach(str_split($_POST['search_term']) as $alpha)
         {      
         echo "<a href='link.com'>
         <img src='../delete/images/{$alpharray[$alpha][0]['imagePath']}' width='100' height='140'/></a>";  
         } 

А потом index.php ...

<script type='text/javascript'> 
$(document).ready(function(){ 
$("#search_results").slideUp(); 
    $("#search_button").click(function(e){ 
        e.preventDefault(); 
        ajax_search(); 
    }); 
    $("#search_term").keyup(function(e){ 
        e.preventDefault(); 
        ajax_search(); 
    }); 

}); 
function ajax_search(){ 
  $("#search_results").show(); 
  var search_val=$("#search_term").val(); 
  $.post("./find.php", {search_term : search_val}, function(data){
   if (data.length>0){ 
     $("#search_results").html(data); 
   } 
  }) 
} 
</script>

<title>Welcome!</title> 
</head> 

<body> 
<h1>Search here</h1> 
    <form id="searchform" method="post"> 
<div> 
        <label for="search_term">Search</label> 
        <input type="text" name="search_term" id="search_term" /> 
<input type="submit" value="search" id="search_button" /> 
</div> 
    </form> 
    <div id="search_results"></div> 
</body> 
</html>

1 Ответ

3 голосов
/ 06 ноября 2011

Атрибут src <img> всегда относится к URL-адресу реальной страницы, которую видит веб-браузер. Пример: www.example.com/test/index.php содержит <img> с src=../image.jpg означает, что веб-браузер пытается загрузить www.example.com/image.jpg

Так что если ваш index.php находится в / (например, www.example.com/index.php), вполне вероятно, что ссылка на изображение в ../delete не будет работать, так как сервер не позволяет доступ к вещи вне ее рута.

Однако, в любом случае, если вы хотите получить доступ к родительскому каталогу, вам нужно указать ../ (не только ..)

Для вашего сценария это будет означать:

foreach(str_split($_POST['search_term']) as $alpha)
     {      
     echo "<a href='link.com'>
     <img src='../delete/images/{$alpharray[$alpha][0]['imagePath']}' width='100' height='140'/></a>";  
     } 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...