![](https://htmlforum.dev/uploads/set_resources_18/84c1e40ea0e759e3f1505eb1788ddf3c_pattern.png)
Yarik Voronov
Expert-
Posts
226 -
Joined
-
Last visited
Content Type
Profiles
Forums
Calendar
Store
Everything posted by Yarik Voronov
-
Значит как сделать в одном файле. Что-то похоже на такое: <?php if (isset($_POST['reg']) { ?> выводим форму вторую <?php } else if (isset($_POST['ok'])) {?> вносим в базу <?php } else if (isset($_POST['go'])) { ?> если введена информ-я в первую форму <?php } else { ?> если ничего из того, значит выводим первую форму <?php } ?>
-
как скрипт напишешь. в большинстве способов - условно-параллельно: т.е. если интерпретатор РНР (например) видит оператор $myVar="Привет, ".$login; а затем echo $myVar; то сначала он присвоит $myVar какое-то значение (выполниться), а затем отдаст это значение в виде строки клиенту (выведиться). Но есть несколько вариантов сначала создать весь код страницы, а уже потом ее отдать. см функцию ob_start()
-
2 rus. нет у него (Goggi) не было указания мускулу обрабатывать $username как строку символов. $pass_res = mysql_query("SELECT password FROM users WHERE username='".$username."'"); в середине апостроф username= ' ".$username." ' " = username='login'
-
2 qwe!. да выложете весь скрипт пожалуйста. При первом взгляде на сабж пришла мысль, что сам скрипт прокрутки находиться именно на вставляемой в iframe первой странице (external1.htm). Естесственно, если страница другая, то прокрутки не будет.
-
Прогонять через массив клиентов конечно же не надо. Можно регуляркой preg_replace_callback() в качестве массива замены забросить ключевые фразы регулярки, в качестве массива получить найденные совпадения.
-
http://ru.wikipedia.org/wiki/User_Agent сюда заглядывали?
-
PS. И последнее размышление. если учитывать, что То бишь XHTML - это тот же XML. То пусть ПШ клепает страницы как клепал, единственное требование к нему чтобы клепал в XHTML Strict. имхо, мы можем взять такой выходной документ написать к нему шаблон xsl и превратить этот выходной документ в любой другой, даже того же типа, но другого форматирования. Собственно тогда "пользователь помимо работы с шаблоном" уже не "должен будет также работать и со скриптом, формирующем xml", пользователь должен будет по собственной необходимости и инициативе писать xsl-стили трансформации для исходного шаблона (документа XHTML). Как говорил один йог:"Теперь свободы завались... На вот возьми долото и молоток и начни ей придавать конкретные формы" PPS. Я ничего не хочу доказать и никого не стараюсь обидеть. Я понимаю и принимаю, что в каких-то местах мог противоречить сам себе, повторять уже сказаное и сказаное не мной. Я всего лишь решал задачу: "возможности извлечения произвольных данных из шаблона по технологии xml + xsl"
-
С другой стороны никто не мешает применить "знакомые буквы" monitors.mtz (пример чисто теоретический) {cms:section id="monitors"} {cms:xtemplate name="Мониторы" type="div-ol-li"} {title}-{model} {/cms:xtemplate} {/cms:section} {cms:section id="popular" count="3" order="sale_number"} {cms:xtemplate name="Популярные" type="custom"} <div id="{&&cms:section:id;}"><p>{&name;}</p> <ol> <xsl:apply-templates /> </ol> </div> <xsl:template match="monitor"> <li> <a href="<xsl:value-of select="@url"/>"><xsl:value-of select="@name"/></a> <xsl:value-of select="."/><hr/> </li> </xsl:template> {/cms:xtemplate} {/cms:section} то есть логика такова, что как только матрица попадает в парсер. парсер "решает" какой скрипт, формирующий нужный xml подключить и каким xsl этот xml обработать: либо уже имеющимся в наборе (type="div-ol-li") или произвольным (type="custom"). Собственно разницы с обычным ПШ особой нет. Если раньше мы получали тип данных php array() например, то теперь получаем тип данных xml от скрипта. Если раньше мы брали уже готовый html-шаблон c внедренными сущностями cms, то теперь придется прописывать этот html-шаблон через xsl. Т.о. получаем еще одно промежуточное звено в алгоритме, а именно: какой xsl шаблон применить в зависимости от... (типа устройства, выбранной темы и т.п.). C одной стороны преимущество, с другой усложнение кода и верстки. Я думаю ничего нового для вас не сказал, но все же хотел высказаться.
-
Конечно придется. Просто логика будет иная. Я хочу сказать что при сравнении в посте №7 следовало бы исходить из того что ни ПШ ни Xml система "не знают" как сформировать топ 3 на странице monitors.html Это конечно чистая софистика, но чтобы "почуствовать разницу" надо поставить объекты сравнения в равные условия, но применить к ним разные методы. Почему то мы забыли что и в случае с ПШ надо будет работать с формирующим array массив исходных данных скриптом и со скриптом шаблона, дописывая недостающий функционал. Имхо. я не виже слишком большой разницы в смысле применения двух разных подходов. Разница лишь заключается в том что используются различные инструменты и соответственно различна и логика (алгоритмы) их применения. Хочу еще раз повториться: xsl шаблон не обязательно должен содержать форматирование всей страницы, как и xml файл не обязательно должен быть монолитным (полученным в одном и только одном скрипте). Например monitors.mtz ("матрица") <!DYNAMIC VARS [%style% GETFROM "preferencies.php" ]> <BLOCK head XSL="{!style/head.xsl}" ENGINE="modulas/xGetHead.php" /> <BLOCK top CHOOSE="3" CRITERIA="{topOfSales}" XSL="{!style/senterTop.xsl}" ENGINE="modulas/xGetTops.php" /> <BLOCK content CHOOSE="20" CRITERIA="{$_GET['monitor-type']}" XSL="{!style/senterContent.xsl}" ENGINE="modulas/xGetContent.php" /> Придумано за пять минуть ничего нисчем общего не имеет - просто так бы я например решал задачу CMS на технологии xml+xsl. Имхо логически запись : <BLOCK top CHOOSE="3" CRITERIA="{topOfSales}" XSL="{!style/senterTop.xsl}" ENGINE="modulas/xGetTops.php" /> ничем не отличается от записи: {cms:section id="monitors" count="3" order="sale_number"}<li>{title} - {model}</li>{/cms:section} и в первом и во втором случае происходит замена сущностей сгенерированным контентом.
-
2 LokiDi L0ck. следует отметить, что xslt шаблон не обязательно должен содержать форматирование ВСЕЙ страницы. Что такое шаблонизатор? это шаблон + парсер этого шаблона, который обеспечивает функционал этого самого шаблона. если парсер шаблона не поймет эту строку {cms:section id="monitors" count="3" order="sale_number"} то тоже надо будет лезть в его движок и дописывать функционал, т.е. менять скрипт. Шаблонизатор хорош тем, что кто-то хороший уже продумал его функционал и его шаблон. т.е прописал как парсер должен реагировать на ключевые слова. Если брать xml+xsl то в свете приведенного примера (с топ 3 мониторами) я вижу усложнение логики: у нас есть (должна бы быть) матрица конечной страницы. в этой матрице прописано какой запрос, какой xml каким xsl шаблоном следует обработать. т.е. конечная страница - это есть набор маленких xml распарсенных нужным xsl и собранных вместе согласно очередности (и логики) прописанной в матрице. В Програмном шаблонизаторе то что я назвал матрицей, уже прописано в шаблоне вот и все. А XSLT, как заменил ZoNT, нужен для других целей... Итак, на сервере можно парсить множество мелких xml, а можно собрать один xml файл и один xsl-шаблон для этого файла. Имхо, это уже вопрос удобства и целесообразности. Под мелкими xml я подразумеваю: xml для меню, для хедера, для футера, для основной части, для какого-нибудь блока опроса-вопроса, статистики ну и т.д.
-
оно-то как раз работает... но только при загрузке / обновлении страницы. соответственно при клике надо сразу что-то делать с кнопками. например перезаписывать onclick .onclick = function() {return false}; менять class и т.п.
-
Конкретнее в каком браузере не ставяться? в FF3 например ставяться. проверено на тест-примере. <?php $id="12345"; setcookie ("limit".$id,"yes",time()+43200, "/"); var_dump ($_GET); ?> Opera 9.52 тоже принимает
-
Замените <a href="#" onclick="sendRequest('./rating.php?action=up&id=12345', 'rating12345', getRequest); return false;">Поднять</a> на <img src="/my.png" onclick="sendRequest('./rating.php?action=up&id=12345', 'rating12345', getRequest);" /> если и после этого страница перезагружается значит смотреть следует ответ сервера. если не перезагружается тогда следует останавливать дальнейшее распространение события при клике на <a> другим способом. Но скорее всего просто не заполнен атрибут href тега а как приведено выше. и(или) не почищен кеш браузера var request = new XMLHttpRequest(); // осла нету. Переписать эту строчку кода сообразно второго примера надо
-
Тот же самый тест-пример в контексте первоначального вопроса. Файл raiting.php такой же <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Тест ajax</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> </head> <body> <script language="javascript" type="text/javascript"> var resultId, request; /* /* глобальная видимость переменной request и resultId, /* что может привести к неожиданным результатам /* при одновременных нескольких асинхронных запросах, случайно /* выполненных в одно и то же время. */ function makeHttpRequest () { var request = false; // локальная видимость переменной if (window.XMLHttpRequest) { // Mozilla, Safari, Opera 8+, ... request = new XMLHttpRequest(); } else if (window.ActiveXObject) { // IE try { request = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { request = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) {} } } return request; } function getRequest() { if (request.readyState == 4) if (request.responseText && request.status == 200) { alert(request.responseText); document.getElementById(resultId).innerHTML = request.responseText; } } function sendRequest (URL, _resultId, getRequestProc) { resultId = _resultId; request = makeHttpRequest(); //глобальная видимость переменной if (!request) return; request.open('GET', URL, true); //асинхронно request.onreadystatechange = getRequestProc; request.send(null); } </script> <a href="#" onclick="sendRequest('./rating.php?action=up&id=12345', 'rating12345', getRequest); return false;">Поднять</a> <b id="rating12345"></b> </body> </html>
-
2 Джин и всем. Извиняюсь в посте №5 допущена мною ошибка чтобы отправить запрос методом GET не надо разбивать строку на файл и параметры запроса. Да все правильно UPDATE (и он возвращает true/false). Так как запрос происходит без обновления страницы то где то значение $status['rating'], которое должно быть выведено методом inneHTML();? Если оно все-же было получено в скрипте ранее, то тогда нет вопросов, главное чтобы $status['rating'] не было undefined. Маленький тест-пример test.html <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Тест ajaxa</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> </head> <body> <script language="javascript" type="text/javascript"> function sendRequest (URL, resultId) { var request = new XMLHttpRequest(); // осла нету. request.open('GET', URL, false); //синхронно request.send(null); if (request.status == 200) { alert(request.responseText); document.getElementById(resultId).innerHTML = request.responseText; } } </script> <a href="#" onclick="sendRequest('./rating.php?action=up&id=12345', 'rating12345'); return false;">Поднять</a> <b id="rating12345"></b> </body> </html> rating.php <?php var_dump ($_GET); ?>
-
Млин, совсем забыл <a href="#" onclick="sendRequest(); return false;"></a> из самого простого
-
ага, точно. я что-то не видел в РНР запроса типа SELECT и где присваивается $status['rating']. Запрос типа UPDATE возвращает только true/false.в функции getRequest () добавте alert(httpRequest.responseText); и посмотрите ответ сервера
-
Скорее всего файла с именем например "/rating.php?action=up&id=1333" не существует. Ответ сервера 404. <!-- onClick="java script:..." пишется слитно. а то какой-то глюк, по крайней мере у меня :) --> <a href="" onClick="java script:sendRequest(['/rating.php','action=up&id=<?=$status['id']?>'], 'result<?=$status['id']?>', getRequest);" title="Нравится">+</a> <b id="result<?=$status['id']?>"><? include "./rating.php";?></b> // вывод рейтинга .... function sendRequest(param, _resultId, getRequestProc) { resultId = _resultId; document.getElementById(resultId).innerHTML = '--'; httpRequest.open('GET', param[0], true); /*true - асинхронный запрос. для синхронного запроса (false) алгоритм несколько проще*/ httpRequest.onreadystatechange = getRequestProc; httpRequest.send(param[1]); } function getRequest() { if (httpRequest.readyState == 4) if (httpRequest.responseText && httpRequest.status == 200) document.getElementById(resultId).innerHTML = httpRequest.responseText; }
-
2 Джин. А где код самого sendRequest() и getRequest() ??
-
Зачим такой сложность? Как только файл перезаписался/изменился то меняется информация о нем, которую можно получить серверным скриптом. Например в РНР это функция: stat (string $filename) или fstat (resource $handle). По 1-ому вопросу. Можно сделать эксель таблицу в xml формате (то бишь сохранить как xml из самого excel) или сделать шаблон. И уже работать или как с текстом, или как с xml. (хотя последнее не пробовал). Office нормально открывает такой файл как Excel таблицу. Ессно дело если ошибок нет. ПСЖ А почему вопрос в разделе JS? Java Script тут много не попишешь... Разве что саму html-обертку.
-
см RegExt.exec() var result = bMask.exec(expression); if (result instanceof Array) br = br.concat(result); Хотя... var test = [1,2,3]; test = test.concat([4,5,6],null); alert([test instanceof Array, test.length]);// true,7 Так что ошибка где-то в другом месте
-
2 vvsh "посылка целой формы на сервер" http://dklab.ru/lib/JsHttpRequest/manual.html#cont5
-
Пожалуйста, помогите с парольным доступом!
Yarik Voronov replied to AndyMac's question in HTML Coding
Из личных сообщений: Потому что форма должна работать в связке с серверным скриптом авторизации. у вас в примере только одна часть требуемой цепочки: форма -> серверный скрипт авторизации -> доступ к авторизованной части сайта. форма только отправляет данные для авторизации (в данном примере), но! никак их не обрабатывает и не может этого делать по своей сути. ищите в google статьи про аторизацию. кроме того в теме уже было дано несколько серверных скриптов (простых и более-менее надежных) -
noran, тогда подробно уточняйте что вы хотите сделать. я не могу за вас делать вашу работу по трем причинам: 1. не вижу всего коплекса задач 2. это ваша работа, а не моя 3. мне за это не платят с другой стороны приемов уже высказанных в этой теме достаточно чтобы решить задачу создания таблиц. все остальное это только логика и желание найти ответ. читайте введение в DOM (document object model, объектная модель документа/модель объектов документа)
-
> Однако ко всему прочему я не знаю как мне отсылать инфу из форм number[], date_1[], theme_1[], target[], sender[] если задейстована одна строка с формами и несколько ? Как обычно <form name="links" method="post"> <table width="800" id="tbl" cellpadding="0" cellspacing="0" border="1"> <tr bgcolor=#FF9933 align="center"> <td align="center">№ письма</td> <td align="center">Дата отправления</td> <td align="center">Тема письма</td> <td align="center">Отправитель</td> <td colspan=2 align="center">Получатель</td> </tr> <tr> <td><input type="text" name="number[]" width="160"></td> <td><input type="text" name="date_1[]" width="160"></td> <td><input type="text" name="theme_1[]" width="160"></td> <td><input type="text" name="target[]" width="160"></td> <td><input type="text" name="sender[]" width="160"></td> <td><input type="button" value="+" onClick="add_new_row()"></td> </tr> </table> <input type="submit" value="Сохранить"> <input type="reset" value="Сброс написанного"> </form> просто на сервере данные инерпритируются как нумерованые массивы (будь в этом массиве хоть одно значение, хоть ни одного)