28.11.2008, 22:57 | #1 |
Мафиози
Регистрация: 11.09.2008
Адрес: <H1></H1>
Сообщений: 1,174
Вес репутации: 249
|
Подскажите, на чём реализовать?
Необходимо сделать, чтобы при клике на кнопку появлялась надпись под кнопкой из массива. Думал на джава скрипт, но с ним в коде страницы виден сам скрипт, а мне нужно чтобы он был скрыт. Как лучше поступить? Надпись должна выводится на этой же странице, т.е. чтобы страница не перезагружалась. Спасибо.
__________________
|
28.11.2008, 23:00 | #3 |
Мафиози
Регистрация: 11.09.2008
Адрес: <H1></H1>
Сообщений: 1,174
Вес репутации: 249
|
Массив со скрипта, бд не нужно.
__________________
|
28.11.2008, 23:12 | #5 |
Мафиози
Регистрация: 11.09.2008
Адрес: <H1></H1>
Сообщений: 1,174
Вес репутации: 249
|
Задача следующая: в скрипте указываем массив из строк текста. На странице есть кнопка (<Input type="Button" value="Надави на меня" onClick="MyFunc()">) . При нажатии на кнопку должна появится надпись на этой же странице, взятая рандомно из массива. При этом страница не должна перезагружаться. И скрипт этот в исходном коде страницы не должен быть виден.
__________________
|
28.11.2008, 23:27 | #6 |
Специалист
Регистрация: 05.05.2008
Адрес: Город Герой О_o
Сообщений: 354
Вес репутации: 223
|
Ну тогда ответ выше.
Масив хранится на сервере в скрипте php например (serv_script.php), посылаете запрос с помощью AJAX который обращается к этому serv_script.php и возвращает рендомный элемент масива. Вот ссылочка на библиотеку о которой я говорил _http://dklab.ru/lib/JsHttpRequest/ Там есть примеры. |
28.11.2008, 23:30 | #7 |
Мафиози
Регистрация: 11.09.2008
Адрес: <H1></H1>
Сообщений: 1,174
Вес репутации: 249
|
maksim7, Спасибо, надеюсь разберусь=)
__________________
|
29.11.2008, 09:14 | #9 |
Мастер
Регистрация: 17.03.2008
Сообщений: 638
Вес репутации: 243
|
Писец, ну нахрена тянуть тяжелую либу, когда это можно сделать в 20 строчках кода. Люди совсем уже обленились, на xаммере в булочную через дорогу ездят уже.
Добавлено через 11 минут Повешайте на клик кнопки обработчик DoWork Код:
function DoWork() { var loader = GetAJAXLoader(); if(loader===null) return; loader.onreadystatechange = function(){ try { if (loader.readyState == 4) { if (loader.status == 200) { document.getElementById('ID_html_элемента_для_замены_контента').innerHTML = loader.responseText; } } } catch( e ) { } } loader.open("GET", 'URL_на_сервере_для_получения_нового_контента', true); loader.send(null); return ; } function GetAJAXLoader(){ var req=null; if (typeof(window.XMLHttpRequest)!='undefined') { try { req = new XMLHttpRequest(); } catch (e){ alert("Ошибка при получении AJAX загрузчика"); } } else if (typeof(window.ActiveXObject)!='undefined') { try { req = new ActiveXObject('Msxml2.XMLHTTP');} catch (e){ try { req = new ActiveXObject('Microsoft.XMLHTTP'); } catch (e){ alert("Ошибка при получении AJAX загрузчика"); } } } else alert("Браузер не поддерживает AJAX"); return req; } header("Content-type: text/plain; charset=windows-1251"); Последний раз редактировалось ahsinis; 29.11.2008 в 09:14. Причина: Добавлено сообщение |
29.11.2008, 12:05 | #10 | |
Мастер
|
Цитата:
Добавлено через 44 минуты Вот мой пример: Код:
<html> <body> <form> <input type="button" value="Надави на меня" onClick="MyFunc()"> <div id="div_letter"></div> </form> <script type="text/javascript"><!-- var request = null; function MyFunc(){ if (request == null){ request = CreateRequest(); SendRequest(request, 'ajax_letter.php', UpdatePage); } } function UpdatePage(){ if (request.readyState == 4 && request.status == 200){ document.getElementById('div_letter').innerHTML = request.responseText; request = null; } } function CreateRequest(){ var request; try{ request = new XMLHttpRequest(); }catch (trymicrosoft){ try{ request = new ActiveXObject('Msxml2.XMLHTTP'); }catch (othermicrosoft){ try{ request = new ActiveXObject('Microsoft.XMLHTTP'); }catch (failed){ request = false; } } } if (!request) alert('Вы используете устаревший или неработоспособный браузер. Некоторые возможности на этой странице вам будут недоступны. Попробуйте использовать другой браузер или другой компьютер.'); return request; } function SendRequest(request, url, func){ request.open('GET', url, true); request.onreadystatechange = func; request.send(null); } //--></script> </body> </html> Код:
<?php header('Content-Type: text/plain; charset=windows-1251'); $data = array('Текст 1', 'Текст 2', 'Ещё один текст', 'И так далее'); echo $data[rand(0, count($data) - 1)]; ?> Скачать отсюда: http://www.przone.ru/ajax/ajax_letter.zip Последний раз редактировалось Pepel; 29.11.2008 в 12:05. Причина: Добавлено сообщение |
|
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Подскажите как реализовать на пхп? | Crudelis | Разработка и сопровождение сайтов | 17 | 16.10.2008 14:01 |
Подскажите CMS | asdfg | Курилка | 16 | 16.08.2008 21:01 |
Контекст + обычные ссылки, как реализовать? | analizer | Вопросы от новичков | 3 | 15.02.2008 13:25 |
Подскажите плз | DmbITpo | Яндекс | 4 | 11.09.2007 01:49 |
вставка кода readfile - как реализовать? | Seo-System | Вопросы по работе системы | 6 | 07.09.2007 14:37 |
Часовой пояс GMT +3, время: 01:48.