AJAX нужна помощь - PullRequest
       6

AJAX нужна помощь

0 голосов
/ 12 февраля 2011

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

Следующие коды - это то, что я придумал до сих пор, но единственный раз, когда это что-то изменит, это когда в текстовом поле не будет никакого значения, кроме того, что содержимое не обновляется (я проверил файл PHP вручную, и естьбез ошибок и с HTTP Direct addon для Firefox Я удостоверился, что мой php файл сделан)

Мой код:

category.php:

    <script type="text/javascript">
function showCat(str, cat)
{
if (str=="")
  {
  document.getElementById("showCategory").innerHTML="";
  return;
  }
if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xmlhttp.onreadystatechange=function()
  {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
    document.getElementById("showCategory").innerHTML=xmlhttp.responseText;
    }
  }
  url="../cat_search.php?q="+str+"&cat="+cat

xmlhttp.open("GET",url,true);
xmlhttp.send();
}
</script>
<input type="text" name="showCat" onkeyup="showCat(this.value, <?=$id?>)" style="width: 140px;" />

    <div id="showCategory">
     ## Stuff is being listed here on the load of the page & then should be updated with Ajax

   </div>

cat_search.php:

<?php
include("config.php");
include("global.php");

$q=$_GET["q"];
$cat=$_GET["cat"];

$search = $q;
$q = "%".$q."%";

$sql="SELECT * FROM games WHERE title like '$q' AND category = '$cat'";
$result = mysql_query($sql);

if(mysql_num_rows($result) == 0) {
echo "<center><div class=\"redbox\" style=\"width: 110px;\">No match</div></center>";
}

while($row = mysql_fetch_array($result)) {
echo '......';
} ?>

Идентификатор $ - это фактический идентификатор категории.

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

Спасибо!

1 Ответ

1 голос
/ 12 февраля 2011

Используйте jQuery для AJAX. Шутки в сторону. Это очень просто и безболезненно. И что это за WTH?

$q=$_GET["q"];
$search = $q;
$q = "%".$q."%";

Почему не просто?

$q = '%'.$_GET['q'].'%';

А, например, код в jQuery:

<script type="text/javascript">
    $(document).ready(function(){
        $('input[name=showCat]').keyup(function(){
            showCat($(this).val(),$(this).attr('id'));
        });
    });
    function showCat(str,cat) {
        if (str == '') {
            $('#showCategory').html('');
            return;
        } else {
            $.get('../cat_search.php',{q:str,cat:cat},function(data){
                $('#showCategory').html(data);
            });
        }
    }
</script>

<input type="text" name="showCat" id="<?=$id?>" style="width: 140px;" />
<div id="showCategory">
    ## Stuff is being listed here on the load of the page & then should be updated with Ajax
</div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...