powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Не могу понять в чём дело...
5 сообщений из 5, страница 1 из 1
Не могу понять в чём дело...
    #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
Не могу понять в чём дело...
    #33569301
Фотография Robert Tappan Moris
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дело в том, что Вы хотите выполнять php-код из Javascript'а.
Конкретнее:
Код: plaintext
1.
	$db->sql_query('UPDATE ".$prefix."_files SET status='2' WHERE lid=".$lid."');
Это выводится в страницу пользоватетю, и javascript не энает что делать с этим.
...
Рейтинг: 0 / 0
Не могу понять в чём дело...
    #33569304
samovar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
хм..
подскажите как быть пожалуйста!
...
Рейтинг: 0 / 0
Не могу понять в чём дело...
    #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
Не могу понять в чём дело...
    #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
5 сообщений из 5, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Не могу понять в чём дело...
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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