Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   2 одинаковые форму на разных страницах (автозаполнение) (https://javascript.ru/forum/jquery/24592-2-odinakovye-formu-na-raznykh-stranicakh-avtozapolnenie.html)

blax 06.01.2012 21:24

2 одинаковые форму на разных страницах (автозаполнение)
 
Имеется 2 формы. Одна большая с множеством полей, второй с несколькими полями, имеющимися на большой. Маленькая форма на главной странице, вторая на дополнительной. Требуется при заполнении маленькой формы и переходе на страничку с большой формой, повторяющиеся поля заполнить автоматом. Перебирать все поля - бред, так как повторяющихся полей много и их кол-во может меняться. Может есть какой-нибудь скрипт для автозаполнения? Спасибо

DjDiablo 06.01.2012 21:59

То есть, есть одна страница в которой есть немного полей.
Пользователь нажал на кнопку и произошёл переход на страницу где много полей, часть уже заполненных до этого полей, заполнится на новой странице автоматически.
Верно ?

Если да, то javaScript код на странице (с небольшим количеством полей) и данными о заполненных полях , исчезнет вместе со старой страницей при переходе на другую страницу.
Это произойдет по той простой причине, что скрипты это часть страницы и уничтожаются они вместе со страницей. А переход на другую страницу есть нечто иное, как уничтожение старой и получение новой страницы. Так как мы не можем уберечь данные в момент перехода на другую страницу, делаем вывод что задача средствами JavaScript не решается, а решается на серверной стороне (к примеру средствами PHP). Если даже скрипт (или что более логично сама форма) перед переходом попробует передать данные на сервер, а на следующей страницы скрипт попробует их получить, то выйдет очень криво и раза в три сложнее чем было бы без javaScript плагина.

Решение на js уместно только в том случае если страница с большой формой подгружаются по ajax, тоесть обновляется только часть html кода страницы, а не вся страница целиком.
Извращение типо хранения данных в куки даже не рассматриваю.

У вас страницы по ajax подгружаются ????

blax 06.01.2012 22:10

Спасибо огромное за ответ. Я думал на js будет проще. Можно тогда пример заполнения полей на php? (у меня текст, радио, чекбоксы, листбоксы и мемо)

DjDiablo 06.01.2012 22:37

Это зависит на какой CMS вы пишите.

ну вот грубый пример, просто исходя их того что у вас голый php.
Впрочем сработает и внутри большинства шаблонизаторов, к примеру в yii или joomla без проблем. В этом примере данные передаются некоторому php скрипту на сервере, а он формирует форму и передает их обратно браузеру,

вот код этого скрипта.
<? 
     $lname=$_POST['lname'];
     $fname=$_POST['fname'];
?>

<form action=" " method="post"> 
  First name: <input type="text" name="fname" value="<?=$fname?>"/><br/> 
  Last name: <input type="text" name="lname"  value="<?=$lname?>"/><br/> 
</form>

blax 06.01.2012 22:43

Спасибо, но вы уж совсем мне все расисали.
Просто я не хочу расписывать для каждого элемента это. Фигня с текстом и мемо, но чекбоксы, радио и листбоксы - это геморойно. Вот и думал как упростить.
Цитата:

Это зависит на какой CMS вы пишите.
На своей

DjDiablo 06.01.2012 22:59

ну создайте конструктор поля к примеру.
это пример, модифицируй как тебе будет надо.
<? 
    $ds=$_POST 
?>
<? function formInput($name, $data){ //конструктор поля ?>
     <input type="text" name="<?=$name ?>" value="<?=$data[$name]?>"/><br/>
<? }?>

<!-- пример обычный-->
First name: <input type="text" name="fname" value="<?=$fname?>"/><br/>

<!-- пример с конструктором дающий аналогичный эффект-->
First name: <?formInput("fname",$ds);  ?>


тобиш создание всего поля и заполнение его данными умещается в строке <?formInput("fname",$ds); ?>
а ведь в ds может содержаться не только данные из post или get запроса, но и данные из базы данных к примеру.
ну это так идея, подумай.

blax 06.01.2012 23:01

А вот это поистине классный совет. Спасибо!


Часовой пояс GMT +3, время: 07:30.