Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Не могу понять в чём дело... / 5 сообщений из 5, страница 1 из 1
27.02.2006, 23:10:41
    #33569295
samovar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не могу понять в чём дело...
Собственно вот функция, по запуску которой должно выскакивать сообщение, которое предоставляет право выбора для пользователя. Если ответ положителен, то идёт обновление в БД, отрицательный - ничего должно не происходить!
Функция с использованием PHP и JAVA ! в последнем силён не особо, поэтому наверное что то не получается.. зы. всё это ковырянный Slaed cms..
сама функция:
функцияfunction broken($lid) { // сообщение об ошибке
global $prefix, $db, $pagetitle, $defis, $broclink, $module_name;
$pagetitle = "$defis "._FILES." $defis "._BROCFILE."";
if ($broclink == 1) {
$lid = intval($lid);

echo"<SCRIPT>
if (confirm('Вы уверены что ссылка действительно не работает?'))
{
if ($lid == '') {
alert('Файл не указан!');

} else {
$db->sql_query('UPDATE ".$prefix."_files SET status='2' WHERE lid=".$lid."');
alert('Спасибо, Ваш запрос будет обработан и ссылка исправлена!');
}

}
else
{
return false;
}
</SCRIPT>";



} else {
Header("Location: index.php?name=$module_name");
exit;
}
}
...
Рейтинг: 0 / 0
27.02.2006, 23:23:04
    #33569301
Robert Tappan Moris
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не могу понять в чём дело...
Дело в том, что Вы хотите выполнять php-код из Javascript'а.
Конкретнее:
Код: plaintext
1.
	$db->sql_query('UPDATE ".$prefix."_files SET status='2' WHERE lid=".$lid."');
Это выводится в страницу пользоватетю, и javascript не энает что делать с этим.
...
Рейтинг: 0 / 0
27.02.2006, 23:27:02
    #33569304
samovar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не могу понять в чём дело...
хм..
подскажите как быть пожалуйста!
...
Рейтинг: 0 / 0
27.02.2006, 23:40:51
    #33569313
Robert Tappan Moris
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не могу понять в чём дело...
Первый пришедший в голову вариант:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
function broken($lid) { // сообщение об ошибке
	global $prefix, $db, $pagetitle, $defis, $broclink, $module_name;
	$pagetitle = "$defis "._FILES." $defis "._BROCFILE."";
	if ($broclink ==  1 ) {
		$lid = intval($lid);
	    echo"<SCRIPT>
	        if (confirm('Вы уверены что ссылка действительно не работает?')) {
	        	if ($lid == '') {
	        		alert('Файл не указан!');
	        	} else {
	        		document.location('<путь_до_update-скрипта>');
	        	}
	        } else {
	        	return false;
	        }
	        </SCRIPT>";
	} else {
		Header("Location: index.php?name=$module_name");
		exit;
	}
}
update-скрипт - это скрипт, который сделает update-запрос, ему нужно передать $lid, тут же можно будет выдать сообщение мол "обновили, все ОК" и перекинуть пользователя куда-нить. Передавать можно через методом GET.
Естественно в этом скрипте нужно ещё раз проверить $lid.

Чуть позже может быть предложу ещё решение с меньшим числом переходов по страницам.
...
Рейтинг: 0 / 0
28.02.2006, 00:07:01
    #33569339
Robert Tappan Moris
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не могу понять в чём дело...
Во ещё один более хитрый вариант:
вместо
Код: plaintext
document.location('<путь_до_update-скрипта>');
написать
Код: plaintext
document.write('<script src="<путь_до_скрипта>"></s'+'cript>')
В этом случае все что выведет скрипт будет восприниматься как Javascript, то есть можно сделать следующий скрип:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
<?php
/* ...
   инклюдим Ваши библиотеки
   ...
*/

/* берём параметр */
$lid=$_GET["lid"]; 

/* ...
   проверка $lid
   ...
*/

/* если все нормально - то делаем запрос */
$db->sql_query('UPDATE ".$prefix."_files SET status='2' WHERE lid=".$lid."');

/* подготовка сообщения */
$res = "";
$path = "";

/* ...
   как-нить определяем результаты и пишем текст сообщения в $res, а 
   путь куда перекинуть пользователя в $path
   ...
*/

/* теперь выводи сообщение */
echo "alert(\"$res\");\n";

/* переносим пользователя куда-нить переход будет выолнен только после
   того как пользователь нажмет "ОК" в окне с сообщением*/
echo "document.location(\"$path\");\n";
?>
по идее после того как пользователь скажет что ссылка действительно мертвая, будет производиться обновление БД, после которого получит сообщение. Перезагрузка страницы произойте только 2: 1-я страница с подтверждением намерения пользователя; 2-я страница - страницу куда нужно отправить пользователя после обновления информации о мертвой ссылке.

P.S. чесно скажу: не проверял, но должно работать. Если будут вопросы - пишите.
...
Рейтинг: 0 / 0
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Не могу понять в чём дело... / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]