[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Нужно разоабраться с выполнением скрипта
phatol
Имеется форма. в ней есть текстареа для заполнения. Пишу визуальный редактор яваскрипта. В конце формы есть кнопка сохранить изменения. после ее нажатия страница скрывается. как сделать чтобы она сохранила изменения, но при этом страница не закрылась? Как вариант сделать перенаправление назад. но это крайний случай. Есть ли еще варианты? спасибо



Спустя 4 минуты, 19 секунд (17.05.2011 - 15:11) Snus написал(а):
phatol
Ну наверное писать
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST">

И обрабатывать на той же странице.

Спустя 7 минут (17.05.2011 - 15:18) Krevedko написал(а):
я вообще action никогда не пишу для этой же страницы.

Спустя 20 секунд (17.05.2011 - 15:19) inpost написал(а):
phatol
action="" - теперь отправлять будет сама на себя smile.gif

Krevedko
Для w3c надо писать его, но делать пустым.

Спустя 2 минуты, 27 секунд (17.05.2011 - 15:21) Krevedko написал(а):
ну можно и пустым. зачем извращяться...суперглобальные массивы...чтобы адресную строку от гет-ов очистить чтоли ?

Спустя 22 секунды (17.05.2011 - 15:22) Snus написал(а):
inpost
Делать пустым тоже не совсем правильно. ИМХО.

Спустя 2 часа, 7 минут, 28 секунд (17.05.2011 - 17:29) phatol написал(а):
Да просто непойму. у меня вообще не должна форма скрываться.
<form action='rewrite.php' method='post' name=studscr>

у меня почему то после нажатия кнопки сохранить открывает файл rewrite.php . а такого вроде быть не должно.

Спустя 5 минут, 1 секунда (17.05.2011 - 17:34) Krevedko написал(а):
ну видимо потому что тут
action='rewrite.php'
написано открывать файл rewrite.php

Спустя 18 минут, 8 секунд (17.05.2011 - 17:52) phatol написал(а):
Я так понимаю самый простой вариант, в файле реврайт прописать перенаправление на исходную страницу? ибо как если исполняемый код вставить в страницу, оно все работает, но не так) оно возвращается на страницу. но введенного содержимого нет. обновить, то появляется. обновиться еще раз, все стирается) мне ненадо это. аякс нет времени учить. (

Спустя 3 минуты, 1 секунда (17.05.2011 - 17:55) Krevedko написал(а):
аякс тут ненужен. можно сделать, чтобы возвращало на эту же страницу и не стирало изменения
тут написано например
http://www.irbis-team.com/15/5/2

со слов
Цитата
Теперь усложним задачу. При отправке данных запись в поле исчезает. А что, если что-то не так? Бедный юзер должен всё заново переписывать? Будем вежливы и вернем ему форму с данными. Для этого немного изменим ход событий.

Спустя 18 минут, 56 секунд (17.05.2011 - 18:14) phatol написал(а):
я сделал таким образом, что введенный человеком скрипт хранится в переменной в файле. и потом просто считывается. и уже редактируется. и снова можно сохранить.
Но почему то после сохранения он в коде пишет символы \ \ в некоторых местах. с чем это может быть связано? придется наверно все таки на аяксе мудрить. или ваще непонятно что.

Спустя 23 минуты, 59 секунд (17.05.2011 - 18:38) phatol написал(а):
Цитата (Krevedko @ 17.05.2011 - 14:55)
аякс тут ненужен. можно сделать, чтобы возвращало на эту же страницу и не стирало изменения
тут написано например
http://www.irbis-team.com/15/5/2

со слов
Цитата
Теперь усложним задачу. При отправке данных запись в поле исчезает. А что, если что-то не так? Бедный юзер должен всё заново переписывать? Будем вежливы и вернем ему форму с данными. Для этого немного изменим ход событий.

написал там все как описано по ихнему примеру, запись в файл происходит, но содержимое все равно стирается ((((


<?php
header("Content-Type: text/html; charset=utf-8");
error_reporting(E_ALL);
// Переносим инициализацию выше формы и вернем значение в инпут
$studscript = !empty($_POST['studscr']) ? $_POST['studscr'] : null;
?>
<html>
<
head>
<
meta http-equiv='Content-Type' content='text/html; charset=windows-1251'>
<
title>jQuery</title>
<
script src='../js/jquery161.min.js' type='text/javascript'></script>


<
link href='style.css' rel='stylesheet' type='text/css'>
</
head>
<
body>
Введите скрипт на синтаксисе jQuery (Ввод <script></script> не требуется!):
<
form action='' method='post'>
<
input name='studscript' type='text' value="<?php echo htmlspecialchars($studscript) ?>"/><br />
<
textarea id='area' cols=87 rows=10 size=600 name='studscript' value="<?php echo htmlspecialchars($studscript) ?>"/></textarea>
<
input name='ok' type='submit' />
</
form>
<?php

// Заменяем сущности на эквиваленты
echo htmlspecialchars($studscript);

if (isset($_POST['studscript'])) $studscript=$_POST['studscript']; else $studscript="";
$text="$studscript";
$fp=fopen("studscript.js","w+");
flock ($fp,LOCK_EX);
fputs($fp,"$text\r\n");
fflush ($fp);//очищение файлового буфера
flock ($fp,LOCK_UN);
fclose($fp);
?>
</body>
</
html>


Че делать?

Спустя 6 минут, 38 секунд (17.05.2011 - 18:45) Krevedko написал(а):
$studscript = !empty($_POST['studscr']) ? $_POST['studscr'] : null;

опечатка

у тебя название studscript
почему ты пишешь $_POST['studscr'] ??

Спустя 21 минута, 32 секунды (17.05.2011 - 19:06) phatol написал(а):
Ну да, не углядел. только вот вещь такая теперь:
У меня поле не инпут, в textarea =(
<textarea id='area' cols=87 rows=10 size=600 name='studscript' value="<?php echo htmlspecialchars($studscript) ?>"></textarea> 

И в итоге вставляет содержимое ниже поля. как этого избежать? Ведь для инпута не задать ширину и высоту. а только однострочное ((

Ну и да ладно, с сохранением разобрался по другому, только вот теперь при сохраниии и в переменную, и при поомщи аякса вместо чистого исходного кода сохраняет этот же код, только в некоторых определенных местах ставить символы / . Как избежать этого?

Спустя 7 минут, 14 секунд (17.05.2011 - 19:14) Krevedko написал(а):
между тегами textarea пишешь.
value убирай у него

Спустя 2 часа, 49 минут, 29 секунд (17.05.2011 - 22:03) phatol написал(а):
было экранирование ковычек включено. Все сделал. Все большое спасибо за помощь и советы.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.