Форум: "Прочее";
Текущий архив: 2006.06.25;
Скачать: [xml.tar.bz2];
ВнизJavascript + php, вопрос скорее по первому Найти похожие ветки
← →
Zeqfreed © (2006-05-31 17:39) [0]Приходится сейчас писать для веба. В результате моих изысканий я написал вот такой скриптик, иллюстрирующий мой подход к этому делу:
test.php:<?
if (isset($_GET["get"])) {
print "ShowText("hello");";
} else {
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<title>Тестовый скрипт</title>
<script>
function ShowText(text)
{
document.getElementById("a").value = unescape(text);
}
function AddScript(get)
{
var
s = document.getElementsByTagName("script")[1];
s.src = "test.php?get=" + get;
}
</script>
<script>
</script>
</head>
<body>
<form>
<textarea id="a" cols="70" rows="20"></textarea><br>
<input onClick="javascript: AddScript();" type="button" name="submit" value="Загрузить" />
</form>
</body>
</html>
<? } ?>
Данный скрипт работает. Но в реальном проекте такая же схема сбоит. Отсюда делаю вывод, что либо я опять где-то что-то недосмотрел, либо схема не очень-то и стабильная.
В общем задача у меня — динамическое обновление страницы без перезагрузки оной. А вопрос в том, как бы это все покорректней реализовать, т.к. чувствую, что сейчас у меня полная чушь написана.
Буду признателен за любые подсказки, только прошу меня не посылать изучать исходники AJAX Framework"ов.
← →
Calm © (2006-05-31 17:57) [1]
> В общем задача у меня — динамическое обновление страницы
> без перезагрузки оной.
Что-то типа "взболтать, но не перемешивать". Надо бы пояснить.
Без разъяснений целей и проблем разгадывать исходник неохота, на работе таких ребусов хватает :)
← →
Zeqfreed © (2006-05-31 18:01) [2]Ну приведенный скрипт хорошо иллюстрирует мою задачу. При нажатии на кнопку в текстовое поле загружается текст, полученный в результате работы скрипта (в данном случае этого же, в общем случае — любого). Проблема заключается в том, как вызывается этот скрипт и получаются данные от него. Мне кажется, что сейчас это реализовано неверно. Спрашиваю, может кто подскажет более корректный вариант. Хотя сейчас я потестировал, вроде работает. Если предложений по улучшению не будет, придется оставить такой вариант.
Попутный вопрос, в php нет ф-ции аналогичной escape в javascript? (а я тем временем погляжу на php.net)
← →
palva © (2006-05-31 18:38) [3]Корректно реализуется через XML. Страница получает дополнительные данные в объект MSXML и рассовывает их по странице.
← →
vidiv © (2006-06-01 03:16) [4]можно делать скрытый IFrame и в него грузить чисто скрипт.
> palva © (31.05.06 18:38) [3]
Можно по подробнее?
← →
TButton © (2006-06-01 06:12) [5]фигня какая-то
имхо, с iFrame"ом действительно будет проще и понятнее
тем более что iframe - единственный в (D)HTML контейнер позволяющий что-то в себя загружать без перезагрузки страницы
← →
Zeqfreed © (2006-06-01 07:29) [6]Я уже отладил свой скрипт с использованием информации из разных интернет-источников (например, http://www.dklab.ru/lib/Subsys_JsHttpRequest/), теперь работает в Опере, Фаерфоксе и ИЕ (тех версий что у меня наличествуют). Кому интересно, привожу код, демонстрирующий саму методику:
test.php:<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<title>Untitled Document</title>
<script language="javascript">
function getObject(name) //(C) Yanis Prasol aka Gero
{
var obj
if (document.all)
obj=document.all[name]
else
{
obj=document.getElementById(name)
if (!obj)
obj=document.getElementsByName(name)[0]
if (document.getElementsByName(name).length>1)
obj=document.getElementsByName(name)
}
return obj
}
function displayData(a)
{
alert(a);
}
function loadRemoteData()
{
var sd = getObject("scriptdiv");
sd.innerHTML = "hello<s" + "cript></" + "script>";
var s = sd.getElementsByTagName("script")[0];
s.language = "JavaScript";
var str = getObject("myform").text.value;
var href = "getdata.php?in=" + str;
if (s.setAttribute)
s.setAttribute("src", href);
else
s.src = href;
}
</script>
</head>
<body>
<div id="scriptdiv" style="display: none"></div>
<form id="myform">
<input name="text" type="text" value="" />
<input type="button" value="Обработать" onClick="loadRemoteData()" />
</form>
</body>
</html>
getdata.php:<? if (isset($_REQUEST["in"])) { ?>
displayData("<?=$_REQUEST["in"]?>");
<? } ?>
Меня, в общем-то, сейчас все устраивает. Хотя, конечно, выглядит это все как какой-то «хак», но ничего особо сложного, на мой взгляд, нет.
← →
Zeqfreed © (2006-06-01 07:34) [7]В данный момент пытаюсь разобраться с mod_rewrite, да что-то все никак не получается :( Нужно то простенькое правило, чтобы перенаправлять все запросы кроме картинок, яваскриптов и каскадны таблиц на один скрипт…
Страницы: 1 вся ветка
Форум: "Прочее";
Текущий архив: 2006.06.25;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.012 c