Передача параметров сценарию из onChange без перех

 
0
 
JavaScript
ava
borovyshka | 03.11.2011, 13:22
Добрый день! Очень нужна ваша помощь. Я плохо знакома с JavaScript, а нужно срочно произвести изменения в скрипте.
Дело в том что при нажатии на кнопку onChange происходит переход на обновленную страницу, а необходимо чтобы страница обновлялась без перехода
Это скрипт в работе
http://93.125.57.11/TV/index.php
Код на php:


<tr valign=top>
<td bgcolor=$light_color width=100%>

";
echo "<form name=\"dni\" action=\"\" method=\"post\">

<!--В данной строке переход, которого нужно избежать-->
Выбери дату:&nbsp;<select size=1 name=den_nedeli onChange=\"javascript:parent.document.location='index.php?action=tv&den_ned='+this.options[this.selectedIndex].value;\">";

if ($dir = @opendir("data")) {
while (($file = readdir($dir)) !== false) {
if ($file!="." and $file!=".."){$papok++;$papka_[]=$file;
echo "<option value=all-$papok>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-</option>";
list($den,$month,$year)=explode("-",$file);
for ($y=1;$y<8;$y++){

$curent = date ("d.m", mktime (0,0,0,$month,$den,$year));
if ($curent == "$d_now.$m_now") echo "<option value=$y-$papok-$week[$y]%20$curent s_elected>-=Сегодня=- $curent</option>";
else echo "<option value=$y-$papok-$week[$y]%20$curent>$week[$y] - $curent</option>";
$den++;}
}
}
closedir($dir);
}
echo "</select><br><br>";

Так же прикреплен весь скрипт страницы
Kommentare (3)
ava
SelenIT | 05.11.2011, 01:34 #
Просто убрать весь onchange проблему не решает?
ava
borovyshka | 08.11.2011, 14:36 #
Нет не решает, тогда параметр выбранной даты не передается дальше, что не позволяет просмотреть программу по другим дням
ava
skyboy | 12.11.2011, 02:05 #
в текущем случае переход по событию onchange только инициируется javascript'ом. на самом деле, отличия от прямой ссылки минимальны.
в случае "обновления страницы без перезагрузки" не достаточно изменить только одну строчку с location.
0. джаваскрипт должен формировать запрос при помощи XMLHttpRequest или любой обертки над ним. никакого location.href = ...
1. сервер должен уметь обрабатывать запрос от джаваскрипта(клиентской составляющей) и по параметрам формировать/возвращать только кусок страницы(то, что обновляется), в то время, как сейчас возвращается страница целиком
2. джаваскрипт часть должна суметь дождаться ответа от сервера, проверить его на корректность(к примеру, чтоб вместо текста не возвращался код ошибки) и вставить содержимое ответа в нужное место.
суммарно подобный процесс называется AJAX. и, как видно, реализация его не только клиентскую сторону затрагивает(и это не одна строка, нет), но и серверную.
в лучшем самом быстром по времени внедрения случае, можно запрашивать джаваскриптом страницу целиком, выдирать из неё именно нужный кусок и вставлять в нужное место. это позволит обойтись без изменений на серверной стороне, но будет наверняка медленнее и потенциально нестабильнее. совсем на крайний случай, можно запрашивать новую страницу и выдирать у неё <body>, вставляя вместо текущего. но это вообще мегажесть, от которой я бы лично плакал кровавыми слезами :(
Registrieren Sie sich oder melden Sie sich an, um schreiben zu können.
Unternehmen des Tages
Вы также можете добавить свою фирму в каталог IT-фирм, и публиковать статьи, новости, вакансии и другую информацию от имени фирмы.
Подробнее
Mitwirkende
advanced
Absenden