Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Некорректная работа фильтра
Форумы портала PHP.SU » » HTTP и PHP » Некорректная работа фильтра

Страниц (1): [1]
 

1. DeathCookies - 28 Декабря, 2014 - 19:05:55 - перейти к сообщению
Привет, друзья! Возникла проблема: не работает написанный фильтр на чекбоксах. Выводит все alert'ы до "Hurry up! They will be sent" включительно. Т.е. запрос не обрабатывается. Что не так?

Страница каталога

CODE (html):
скопировать код в буфер обмена
  1. <!DOCTYPE>
  2. <html>
  3. <head>
  4. <title></title>
  5. <meta name="" content="">
  6. </head>
  7. <body>
  8. <link rel="stylesheet" href="1.css">
  9.  
  10. <div class="catalog">
  11.  
  12. <?
  13. $goods=selectAll();
  14. foreach ($goods as $item) {
  15. ?>
  16.  
  17. <div class="catalogElement <?echo $brend?>">
  18. <img class="catalogElementPicture" src="img/<?echo $item['img']?>">
  19. <div class="actives">
  20. <a href="add2basket.php?id=<?=$item["id"]?>" class="inBasket">В КОРЗИНУ</a>
  21. <a href="add2basket.php?id=<?=$item["id"]?>" class="buyNow">КУПИТЬ</a>
  22. <a href="add2basket.php?id=<?=$item["id"]?>" class="info">ПОДРОБНЕЕ</a>
  23. </div>
  24. <div class="name"><?echo $item['title'];?></div>
  25. <div class="oldprice">В НАЛИЧИИ</div>
  26. <div class="price"><?echo $item['price'];?>
  27.  
  28. </div>
  29. </div>
  30. </div>
  31. <? } ?>
  32. <div class="filter">
  33. <form action="<?$_SERVER['PHP_SELF']?>">
  34. <input type="checkbox" class="brend" name="gta5"/>
  35. <input type="checkbox" class="brend" name="gta4"/>
  36. <input type="checkbox" class="brend" name="gta3"/>
  37. <input type="checkbox" class="brend" />
  38. <input type="checkbox" class="brend" />
  39. <input type="button" class="button" value="Let's go!" />
  40. </form>
  41. </div>
  42. </body>
  43. </html>
  44.  
  45. <script type="text/javascript" src="js/jquery.js"></script>
  46. <script type="text/javascript" src="js/script.js"></script>


script.js

CODE (javascript):
скопировать код в буфер обмена
  1. $(document).ready(function() {
  2. alert('330');
  3. $('.button').click(function(){
  4.  
  5.    
  6.      var checks=new Array();
  7.      alert('1');
  8.      
  9.     $('input:checked').each(function() {
  10.    
  11.         alert('Got it!');
  12.        
  13.         var type = $(this).attr('class');
  14.         var value = $(this).attr('name');
  15.        
  16.         checks[type]=value;
  17.     });
  18.         var data=JSON.stringify(checks);
  19.         alert('There is a string!');
  20.         // запрос
  21.         $.ajax({
  22.             url: 'testing.php',
  23.             type: 'post',
  24.             dataType: 'json',
  25.             data: { checks: data },
  26.             beforeSend: function() { alert('They will be sent! Hurry up!'); },
  27.             success: function() { alert('Yeah, maaaaaaan'); }
  28.         });
  29.  
  30.     }
  31. )
  32. }
  33. );


testing.php

PHP:
скопировать код в буфер обмена
  1. <?
  2. function dataBaseToArray($resultat){
  3.     $array = array();
  4.     while($row = mysql_fetch_assoc($resultat)){
  5.         $array[] = $row;
  6.     }
  7.     return $array;
  8. }
  9.  
  10.  
  11. define("DB_HOST", "localhost");
  12. define("DB_LOGIN", "root");
  13. define("DB_PASSWORD", "");
  14. define("DB_NAME", "yourwatches");
  15. mysql_connect(DB_HOST, DB_LOGIN, DB_PASSWORD) or die(mysql_error());
  16.  
  17. if (isset($_POST['checks'])) {
  18.             $php_json = json_decode($_POST['checks'], TRUE);
  19.             $i=0;
  20.             $length=$php_json.length();
  21.             $sql = "SELECT FROM catalog
  22.                                       *
  23.                                      WHERE '".
  24.                                       foreach($php_json as $key=>$value) {
  25.                                       echo $key.'='.$value;
  26.                                       if($i<$length-1) echo 'OR';
  27.                                       $i++;                                  
  28.                                       }
  29.                                       ."'
  30.            ";
  31.             $resultat = mysql_query($sql) or die(mysql_error());
  32.             $js_json = json_encode(dataBaseToArray($resultat));
  33.             echo $js_json;
  34.         }
  35.  
  36. ?>

 

Powered by ExBB FM 1.0 RC1