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 :: Версия для печати :: AJAX скрипт "Записать в блокнот"
Форумы портала PHP.SU » » Вопросы новичков » AJAX скрипт "Записать в блокнот"

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

1. Шмайсер - 19 Октября, 2011 - 08:21:28 - перейти к сообщению
Здравствуйте! Написал скрипт, который добавляет объекты каталога в блокнот. Вот код вывода каталога
PHP:
скопировать код в буфер обмена
  1.  
  2. <script type="text/javascript" src="js/JsHttpRequest.js"></script>
  3. <script type="text/javascript" src="js/ot.js"></script>
  4. <link href="images/css.css" rel="stylesheet" type="text/css">
  5. <a href='zap.php' class='top_link'><span>Блокнот</span></a>
  6. <?
  7.  
  8. //далее идут запросы в базу, обработка и вывод результатов
  9.  
  10. //ниже код добавления в блокнот
  11.         echo "<div style=\"margin:0px;\" id=\"InListCatAddToNote".$row_Recordset1['id']."\"><a style=\"cursor:pointer\" href=\"javascript:InListCatAddToNote('".$row_Recordset1['id']."');\"
  12.                  title=\"Добавить в блокнот\"><img src=\"images/note.gif\"></a>";
  13.                 echo "</div> ";
  14.                
  15.                
  16.         echo '</table>';
  17.         echo '</table><p>';
  18.         }
  19. } while ($row_Recordset1 = mysql_fetch_array($Recordset1));
  20.  
  21. mysql_free_result($Recordset1);
  22.  
  23. ?>
  24. <div id="query">&nbsp;</div>
  25. <div id="img_query"><img src="images/loading.gif"><br><br><strong>Добавляем объект в блокнот</strong></div>
  26. <div id="smalldiv"></div>
  27.  


вот javascript, который реализует ajax запрос к файлу обработчику
CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. function InListCatAddToNote(value)
  3. {
  4.         var namediv = value;
  5.         var req=new JsHttpRequest();
  6.         req.onreadystatechange=function() {
  7.                 if(req.readyState==4)
  8.                 {
  9.                         document.getElementById('query').style.display='none';
  10.                         document.getElementById('img_query').style.display='none';
  11.                         document.getElementById('InListCatAddToNote' + namediv).innerHTML = req.responseText;
  12.                 }
  13.                 else
  14.                 {
  15.                         document.getElementById('query').style.display='block';
  16.                         document.getElementById('img_query').style.display='block';
  17.                         return false;
  18.                 }
  19.         }
  20.         req.open(null,"../core/addtonote.php",true);
  21.         req.send({InListCatAddToNote:value});
  22.         //alert('InListCatAddToNote' + namediv);
  23. }
  24.  


вот код обработчика
PHP:
скопировать код в буфер обмена
  1.  
  2. <?
  3. require("JsHttpRequest.php");
  4.  
  5. $JsHttpRequest = new JsHttpRequest("windows-1251");
  6.  
  7. if (is_numeric($_REQUEST['InListCatAddToNote'])) {
  8.  
  9. $_SESSION['test'][]=$_REQUEST['InListCatAddToNote'];
  10.  
  11. //ниже код, который делает ссылку на добавление в блокнот неактивной
  12.  
  13. if ($_SESSION['test']) echo "<img src=\"images/nonote.gif\" title=\"Объект записан в блокноте\">";
  14.  
  15.  
  16.  
  17. }
  18.                        
  19. ?>
  20.  

Вопрос в следующем - если пользователь из 30 объектов каталога добавил в блокнот 5 объектов, а потом обновил страничку, то добавленные уже объекты можно опять добавлять в блокнот. Как сделать так, чтобы пока жива сессия, выбранные в блокнот объекты всегда имели неактивную ссылку на добавление?
Заранее спасибо!
(Добавление)
Подозреваю, что в первом коде который я привел, вот тут
PHP:
скопировать код в буфер обмена
  1.  
  2. //ниже код добавления в блокнот
  3.         echo "<div style=\"margin:0px;\" id=\"InListCatAddToNote".$row_Recordset1['id']."\"><a style=\"cursor:pointer\" href=\"javascript:InListCatAddToNote('".$row_Recordset1['id']."');\"
  4.                 title=\"Добавить в блокнот\"><img src=\"images/note.gif\"></a>";
  5.                 echo "</div> ";
  6.  


надо сделать проверку на "если в массиве сессии $_SESSION['test'][] есть значение, равное $row_Recordset1['id'] - то выводим неактивную ссылку, иначе - активную "

а вот как реализовать - пока не знаю))
2. illy - 19 Октября, 2011 - 08:43:06 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. if(in_array($_SESSION['test'],$row_Recordset1['id'])){ echo 'пассив'; } else { echo 'актив';}
3. Шмайсер - 19 Октября, 2011 - 08:51:52 - перейти к сообщению
illy, спасибо! Но выдает такую вот ошибку
Warning: in_array() [function.in-array]: Wrong datatype for second argument in Z:\home\bloknot222.loc\www\index.php on line 52
может надо вот так?
PHP:
скопировать код в буфер обмена
  1.  
  2.     if(in_array($_SESSION['test'][],$row_Recordset1['id'])){ echo 'пассив'; } else { echo 'актив';}
  3.  

(Добавление)
Все, разобрался, надо вот так
PHP:
скопировать код в буфер обмена
  1.  
  2. if(in_array($row_Recordset1['id'], $_SESSION['test'])) { echo 'пассив'; } else { echo 'актив';}
  3.  

(Добавление)
illy, огромное спасибо за наводку! Кликнуть "Спасибо" не могу - не хватает сообщений
4. illy - 19 Октября, 2011 - 09:26:01 - перейти к сообщению
Ха-ха эт я ток проснулся. местами надо было поменять переменные.
Сам догадался Подмигивание

 

Powered by ExBB FM 1.0 RC1