HOME    FORUMS    MEMBERS    RECENT POSTS    LOG IN  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > Программирование_OLD > PHP, PERL, MySQL, JavaScript
   
 
 
Опции темы Поиск в этой теме Опции просмотра

  #11  
Старый 17.10.2006, 19:52
Trinux
Познавший АНТИЧАТ
Регистрация: 26.11.2004
Сообщений: 1,149
Провел на форуме:
941818

Репутация: 569


По умолчанию

Цитата:
Сообщение от nerezus  
Кстати. Слышал еще давно, что Трин говорил, про "не покупайте книги про аякс".
Неделю назад купил... лучше бы книгу Полю Дюбуа купил про БД. Ибо в книге про аякс была одна хрень.
Хороший справочник по Js все разрулит.
Или "Энциклопедия Xml" Холзнера. Все клиентские технологии(+ основы джавы) рассмотрены детально. Еще бы: 1100 страниц A4 мелким шрифтом.
насчет справочника по JS - вот это правильно. У самого на 1500 страниц A4, все досконально рассмотрено.
 

  #12  
Старый 18.10.2006, 11:12
NEFILIM
Новичок
Регистрация: 05.10.2006
Сообщений: 14
Провел на форуме:
25357

Репутация: 0
Отправить сообщение для NEFILIM с помощью ICQ Отправить сообщение для NEFILIM с помощью MSN
По умолчанию

Я поддержываю Trinux мне тоже кажется что технологии которые просто входят как "модно" ничо иное как просто хорошо продуманый алгоритм и ничо нового там грубо сказать нет... например я на старой роботе розработал (даже неподозревая того) свою систему MVC, когда пришел на нынешнюю фирму меня начили лечить что надо розобраться в Model View Controler я от одного названия испугался...
 

  #13  
Старый 18.10.2006, 11:44
NEFILIM
Новичок
Регистрация: 05.10.2006
Сообщений: 14
Провел на форуме:
25357

Репутация: 0
Отправить сообщение для NEFILIM с помощью ICQ Отправить сообщение для NEFILIM с помощью MSN
Talking

ну то как знатоки Js кто то поможет мне такое сделать???

Последний раз редактировалось NEFILIM; 18.10.2006 в 15:06..
 

  #14  
Старый 19.10.2006, 06:41
[hidden]
Участник форума
Регистрация: 05.11.2005
Сообщений: 103
Провел на форуме:
425441

Репутация: 31
По умолчанию

Обязательно SELECT? Предлагаю просто текстовое поле меню выбора ...если будет. Если этого хватит (посмотри хотя бы на http://homefarm.ru ) - готов помочь.
Если нет.... то тоже готов=)
 

  #15  
Старый 19.10.2006, 11:45
[hidden]
Участник форума
Регистрация: 05.11.2005
Сообщений: 103
Провел на форуме:
425441

Репутация: 31
По умолчанию

Короче, вот примерный вариант действий.

Файл get.php - скрипт, который будет брать данные из БД:

PHP код:
<?
  
// ACHTUNG!!! В скрипте присутствует потенциальная уязвимость!
  // данные JS поступают в кодировке UTF-8, если у тебя БД в той же кодировке, можно оставить. 
  // У меня база в cp1251, приходится переконвертировать.
  
$req_ iconv("utf-8""windows-1251"$req);

  
mysql_connect("localhost""root");
  
mysql_select_db("db_name");

  
$response "";

  
$res mysql_query("SELECT `name` FROM `table` WHERE `name` LIKE '" $req_ "%'");

  while(
$row mysql_fetch_array($res)) {
    
$name $row['name'];

    
// как видно, скрипт выдает значения, обрамленные <option>
    
$response .= "<option>" $name "</option>";
  }

  print(
$response);
?>
А это файл ajax.html, в котором размещается логика "приложения" и верстка:

PHP код:
<html>
<
head>
<
meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<
title>select check</title>

<
script language="javascript">

var 
req;
var 
mouseOver;
var 
choose;

// Собстно, сердце AJAX
if(window.XMLHttpRequest)
    
req = new XMLHttpRequest();
else
    if(
window.ActiveXObject)
        
req = new ActiveXObject("Microsoft.XMLHTTP");

// эти функции (omo и omov) служат только одной цели - при щелчке мыши вне списка список должен закрыться, так? Придется отслеживать положение мыши.
function omo() {
    
mouseOver false;
}

function 
omov() {
    
mouseOver true;
}

// та самая проверка клика...
document.onclick = function() { // блядь, во жесть...
  
if(!mouseOver) {
    
document.getElementById('div_res').style.display "none";
  }
}

// кликнули по списку (выбрали какое-то значение) - копируем его в текстовое поле и в переменную choose.
function selectfield_click() {
  
document.getElementById('textfield').value document.getElementById('selectfield').options[document.getElementById('selectfield').selectedIndex].text;
  
document.getElementById('div_res').style.display "none";
  
choose document.getElementById('textfield').value;
}

function 
textfield_change() {
  var 
val document.getElementById("textfield");

  
mouseOver true;

  if(
req) {
    try {
      
req.open('GET''http://myserver/get.php?req=' encodeURI(val.value), true); // кодируем символы в UTF-8, иначе скрипту передастся бред.

      
req.onreadystatechange = function() {
        if(
req.readyState == 4) {
          if(
req.responseText.length 10) {
            
div_res.style.display "";
            
div_res.innerHTML "<select name='selectfield' id='selectfield' size='4' onMouseOver='javascript:omov();' onMouseOut='javascript:omo();' onClick='javascript:selectfield_click();' multiple>" req.responseText "</select>";
          }
          else {
            
div_res.style.display "none";
          }
        }
      }
    }
    catch(
err) {
      
alert(err);
    }

    
// посылаем запрос.
    
req.send(null);
  }
}

</
script>
</
head>

<
body>
<!-- 
в HTML нет элемента под названием "список"который к тому же мог бы редактироваться или я просто не знаюесли знаете скажитебуду благодаренпоэтому можно схитрить поставить текстовое полеа под ним select с параметром multipleчто значит что список будет скроллируемыйно всегда открытый. -->
<!-- 
теперь надо подобрать шрифт и размер поляа так же подумать о максимальной длине возвращаемого значения из БД. -->
<
input type='text' id='textfield' size='20' onBlur='javascript:omo();' onKeyUp='javascript:textfield_change();'>

<!--  
изначально слой невидимположение его "относительно" то есть он будет сдвигать остальные элементы на страницеЭто некрасиворекомендую сделать position:absoluteно для примера достаточно и этого. -->

<
div style='display:none;position:relative;' id='div_res'></div>
</
body>

</
html
// Я не думаю, что это идеал, но это хоть что-то...

Последний раз редактировалось [hidden]; 19.10.2006 в 11:54..
 

  #16  
Старый 19.10.2006, 12:25
SMiX
Участник форума
Регистрация: 25.07.2005
Сообщений: 246
Провел на форуме:
457850

Репутация: 174
По умолчанию

Насчет скрипта на php: во-первых, переменную $req надо сначала брать из $_GET['req']; воизбежание ошибок при отключенной REGISTER_GLOBALS, во-вторых, ;куй_ надо фильтровать, т.к. там sql-инъекция, явная, никакая не "потенциальная", ну и в-третьихя, это мелочь, но все же: в данном случае вместо mysql_fetch_array используй mysql_fetch_assoc, т.к. при таком использовании первой, без доп. параметров, генерятся еще помимо элементов $array['name'], элементы $array[номер].
 
 



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Mail.ru разрабатывает интерфейс на базе AJAX novichok Мировые новости. Обсуждения. 7 21.08.2006 03:14



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ