Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> вывести текст в хтмл форму после php, Не рефрешить страницу. Ajax? 
:(
    Опции темы
iSummer
Дата 28.8.2008, 14:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 25.8.2008

Репутация: нет
Всего: нет



 Посоветуйте как такое сделать? (может подходящий скрипт или линк)

 Есть хтмл-форма (пусть form.htm) по загрузке файлов на серв. Предположим я загрузил этой формой файлы. Сработал php-скрипт по оценке и закачке файлов в нужную папку. Если с файлами всё ок - отработав php-скрипт переносит нас на заданную страницу (например index.htm). Но если часть файлов при загрузке оказалась неподходящего формата -  то после обработки скрипта не надо переходить на другие страницы а на этойже хтмл-странице (form.htm -  отправка файлов) - вывести надписи над тегами (inputs:file) что файл не соответствует.

 Как я понимаю тут надо использовать технологию Ajax. Есть какие-нибудь несложные примеры которые могут помочь как выполнить пхп-скрипт и не рефрешив исходную хтмл-страницу в нужные её места занести уведомления которые пхп-скрипт организовал?
PM MAIL   Вверх
bars80080
Дата 28.8.2008, 16:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 71
Всего: 315



не нужно никакого аякса

в случае неправильных форматов инклудишь форму, а не страницу с результами, ну и дд\обавляешь в неё информацию о неудаче

Код

if(  ... неправильный тип ...  ) { $error1 = true; }

...

if(!empty($error1)) include('form.php');
else include('result.php');

form.php:

Код

...
if(!empty($error1)) echo 'неправильный тип файла';
echo '<input type="file" />';
...


Это сообщение отредактировал(а) bars80080 - 28.8.2008, 16:22
PM MAIL WWW   Вверх
MoLeX
Дата 28.8.2008, 17:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Местный пингвин
****


Профиль
Группа: Модератор
Сообщений: 4076
Регистрация: 17.5.2007

Репутация: 46
Всего: 140




M
MoLeX
Модератор: данная тема точно не в профи



--------------------
Amazing  smile 
PM MAIL WWW ICQ   Вверх
iSummer
Дата 31.8.2008, 08:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 25.8.2008

Репутация: нет
Всего: нет



Цитата(bars80080 @ 28.8.2008,  16:21)
не нужно никакого аякса

в случае неправильных форматов инклудишь форму, а не страницу с результами, ну и дд\обавляешь в неё информацию о неудаче

Код

if(  ... неправильный тип ...  ) { $error1 = true; }

...

if(!empty($error1)) include('form.php');
else include('result.php');

form.php:

Код

...
if(!empty($error1)) echo 'неправильный тип файла';
echo '<input type="file" />';
...

 Чёто ничего не понял) Возможно говорим о разном..

 Распишу подробнее. Пусть страница sendform.php - страница по отправке контента с файлами с тегами input type=file (множество) + теги input=text для заголовка контента + текста.  при отправки формы которой срабатывает скрипт upload.php (form method=post action='upload.php').  В этом скрипте идёт анализ и закачка корректных файлов, описания темы, сожержания её. так вот - если какойто файл не удовлетворяет требованиям (размер файла, или тип) -> както реализовать удобный диалог по повторной закачке непринятых файлов.  - Глупо было бы вывести заново страницу с новыми input=file когда уже стёрты следы того что вводил и корректо ввёл. С помощью Ajax всё красиво делается - страница sendform.php не перегружается - данные отправляются, срабатывает скрипт upload.php и над каждым тегом этой страницы sendform.php спокойно выводятся надписи - "загружено", "файл некорректного формата". Тоесть прям тутже видешь что вводил и что ввелось (в этой же форме и без рефрешей). 

Вот только к сожалению я с ajax мало знаком((
PM MAIL   Вверх
bars80080
Дата 31.8.2008, 10:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 71
Всего: 315



Цитата(iSummer @  31.8.2008,  08:52 Найти цитируемый пост)
С помощью Ajax всё красиво делается 

с помощью ajax всё красиво делается, если структура имеет стройную конфигурацию.


Цитата(iSummer @  31.8.2008,  08:52 Найти цитируемый пост)
Глупо было бы вывести заново страницу с новыми input=file когда уже стёрты следы того что вводил и корректо ввёл
значит надо сделать реализацию такой формы, которая бы показывала все введённые значения

тут ведь ещё какая фишка, ты ведь загружаешь не наобум просто в какой-то каталог. у тебя поля в данных, допустим несколько input:file для закачки картинок в галлерею пользователя, под него создаётся скажем папка. и при загрузке в БД или куда там прописываются данные. при повторной загрузке надо как-то указать, что этот дозагружаемый файл будет относится именно к этому пользователю и откоректировать запись о нём

дабы избежать всяких сложностей, обычно всё делается так:
создаётся один файл в котором будет всё сразу. в нём делаются блоки по принципу:
Код

if(!empty($_REQUEST['stage'])) $stage = $_REQUEST['stage']; else $stage = '';

if($stage == 1) {

// скрипт обработки и закачки файлов
$sql = 'insert into table ...';

// если всё хорошо, то производим подключение страницы с результатами
if( ... ошибок нет ... ) {
include('result.php');
// или перенаправляем куда следует
header('Location: result.html');
}

// иначе если происходят ошибки, то вновь вызываем форму с данными, может пользователь хочет что-то подправить
else {

$stage = '';

}

}

if(empty($stage)) {

// форма для занесения коррекции данных
// все переменные $name и другие определяются в первом блоке при обработке данных
// также мы можем вывести все нужные сообщения об ошибках, которые накопили по результатам действия первого блока

?>
<form method="post">
your name: <input name="name" value="$name" />
your foto: <input type="file" name="foto" />
<input type="hidden" name="stage" value="1" />
<input type="submit" value="push" />
</form>

<?php

}
примерно так

а аяксом, и с этим многие согласятся, следует заниматься только тогда, когда полностью понимается система взаимоотношений скриптов и файлов, иначе будет гораздо больше проблем, потому как аякс - это тоже самое, но мелко нарубленное и вызываемое по частям
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0737 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.