Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Как подставлять значения из массива,в форму и автоматически отправлять
Форумы портала PHP.SU » » Объектно-ориентированное программирование » Как подставлять значения из массива,в форму и автоматически отправлять

Страниц (1): [1]
 

1. Solomon - 28 Марта, 2018 - 21:09:38 - перейти к сообщению
Здравствуйте,возникла такая задача,имея,некий массив со значениями,подставлять их в форму,чтобы при этом форма автоматически отправлялась ,и бралось следующее значение из массива и тоже подставлялось.Подскажите,Кто-нибудь,как это можно реализовать на php и js.
2. Vladimir Kheifets - 29 Марта, 2018 - 11:23:22 - перейти к сообщению
Solomon пишет:
Здравствуйте,возникла такая задача,имея,некий массив со значениями,подставлять их в форму,чтобы при этом форма автоматически отправлялась ,и бралось следующее значение из массива и тоже подставлялось.Подскажите,Кто-нибудь,как это можно реализовать на php и js.

Добрый день!
Я написал функцию ArrayToFormSubmit($FormId,$Action,$HiddenField)
PHP:
скопировать код в буфер обмена
  1. function ArrayToFormSubmit($FormId,$Action,$HiddenField){
  2. ?>
  3.     <form id="<?=$FormId?>" name="<?=$FormId?>" method="post" action="<?=$Action?>">
  4.     <?
  5.     foreach($HiddenField as $name=>$value)
  6.     {
  7.         ?>
  8.           <input type="hidden" name="<?=$name?>" value="<?=$value?>" />
  9.         <?
  10.     }
  11.     ?>
  12.     </form>
  13.     <script>
  14.     document.getElementById("<?=$FormId?>").submit();
  15.     </script>
  16.     <?
  17. }

Пример вызова:
PHP:
скопировать код в буфер обмена
  1. <html>
  2. <body>
  3. <?
  4. $FormId="test";
  5. $Action="test.php";
  6. $HiddenField=array("Field1"=>100,"Field2"=>200);
  7. ArrayToFormSubmit($FormId,$Action,$HiddenField);
  8. ?>
  9. </body>
  10. </html>


test.php
PHP:
скопировать код в буфер обмена
  1. <html>
  2. <body>
  3. <?PHP
  4. var_dump($_POST);
  5. ?>
  6. </body>
  7. </html>
  8.  

результ из test.php
PHP:
скопировать код в буфер обмена
  1. array(2) { ["Field1"]=> string(3) "100" ["Field2"]=> string(3) "200" }

Удачи!
3. Solomon - 29 Марта, 2018 - 15:17:02 - перейти к сообщению
Vladimir Kheifets пишет:
Solomon пишет:
Здравствуйте,возникла такая задача,имея,некий массив со значениями,подставлять их в форму,чтобы при этом форма автоматически отправлялась ,и бралось следующее значение из массива и тоже подставлялось.Подскажите,Кто-нибудь,как это можно реализовать на php и js.

Добрый день!
Я написал функцию ArrayToFormSubmit($FormId,$Action,$HiddenField)
PHP:
скопировать код в буфер обмена
  1. function ArrayToFormSubmit($FormId,$Action,$HiddenField){
  2. ?>
  3.     <form id="<?=$FormId?>" name="<?=$FormId?>" method="post" action="<?=$Action?>">
  4.     <?
  5.     foreach($HiddenField as $name=>$value)
  6.     {
  7.         ?>
  8.           <input type="hidden" name="<?=$name?>" value="<?=$value?>" />
  9.         <?
  10.     }
  11.     ?>
  12.     </form>
  13.     <script>
  14.     document.getElementById("<?=$FormId?>").submit();
  15.     </script>
  16.     <?
  17. }

Пример вызова:
PHP:
скопировать код в буфер обмена
  1. <html>
  2. <body>
  3. <?
  4. $FormId="test";
  5. $Action="test.php";
  6. $HiddenField=array("Field1"=>100,"Field2"=>200);
  7. ArrayToFormSubmit($FormId,$Action,$HiddenField);
  8. ?>
  9. </body>
  10. </html>


test.php
PHP:
скопировать код в буфер обмена
  1. <html>
  2. <body>
  3. <?PHP
  4. var_dump($_POST);
  5. ?>
  6. </body>
  7. </html>
  8.  

результ из test.php
PHP:
скопировать код в буфер обмена
  1. array(2) { ["Field1"]=> string(3) "100" ["Field2"]=> string(3) "200" }

Удачи!

Спасибо большое!.Но я имел ввиду,не подставлять все элементы массива сразу.Например.у меня есть массив со значениями array('fisrt' => 'Your name', 'second' => 'Last anme'); и так дальше,и мне нужно,чтобы в форму подставлялось лишь одно значение из этого массива,если форма была отправлена успешно,то следующее и тоже отправить и т.д,пока не закончатся все элементы массива.я хотел сделать так,Через каждые 10 сек обновлять страницу,это можно сделать через ajax,потом проверять сколько раз было обновление и записывать это в переменную,потом по этой цифре брать нужный элемент из массива.Только я не понимаю ,как это сделать,вот,что я имел ввиду,но за этот пример все равно спасибо!
4. Vladimir Kheifets - 30 Марта, 2018 - 11:56:59 - перейти к сообщению
Solomon пишет:

Спасибо большое!.Но я имел ввиду,не подставлять все элементы массива сразу.Например.у меня есть массив со значениями array('fisrt' => 'Your name', 'second' => 'Last anme'); и так дальше,и мне нужно,чтобы в форму подставлялось лишь одно значение из этого массива,если форма была отправлена успешно,то следующее и тоже отправить и т.д,пока не закончатся все элементы массива.я хотел сделать так,Через каждые 10 сек обновлять страницу,это можно сделать через ajax,потом проверять сколько раз было обновление и записывать это в переменную,потом по этой цифре брать нужный элемент из массива.Только я не понимаю ,как это сделать,вот,что я имел ввиду,но за этот пример все равно спасибо!

Добрый день!
Я видел, другую тему, которую Вы открыли про передачу значений переменных.
Вроде бы с этим Вы разобрались.
В данном случае Вам потребется завести переменную, например, indeх и передавать её через $_POST
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. $index = isset($_POST['index'])?$_POST['index']:0;
  3. ................................
  4. ................................
  5. $index = $index++;
  6. ?>

p.s. смущает "если форма была отправлена успешно"... впрочем, в жизни всякое бывает...
Удачи!
5. Solomon - 12 Апреля, 2018 - 19:15:19 - перейти к сообщению
Vladimir Kheifets пишет:
Solomon пишет:

Спасибо большое!.Но я имел ввиду,не подставлять все элементы массива сразу.Например.у меня есть массив со значениями array('fisrt' => 'Your name', 'second' => 'Last anme'); и так дальше,и мне нужно,чтобы в форму подставлялось лишь одно значение из этого массива,если форма была отправлена успешно,то следующее и тоже отправить и т.д,пока не закончатся все элементы массива.я хотел сделать так,Через каждые 10 сек обновлять страницу,это можно сделать через ajax,потом проверять сколько раз было обновление и записывать это в переменную,потом по этой цифре брать нужный элемент из массива.Только я не понимаю ,как это сделать,вот,что я имел ввиду,но за этот пример все равно спасибо!

Добрый день!
Я видел, другую тему, которую Вы открыли про передачу значений переменных.
Вроде бы с этим Вы разобрались.
В данном случае Вам потребется завести переменную, например, indeх и передавать её через $_POST
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. $index = isset($_POST['index'])?$_POST['index']:0;
  3. ................................
  4. ................................
  5. $index = $index++;
  6. ?>

p.s. смущает "если форма была отправлена успешно"... впрочем, в жизни всякое бывает...
Удачи!


Спасибо!

 

Powered by ExBB FM 1.0 RC1