Jump to content
  • 0

Вопрос по передаче данных методом POST


Евгений_74
 Share

Question

Здравствуйте.

У меня в файл обработчик прилетает такой вот массив данных:

Array ( [cat_a1] => Значение1 [cat_b1] => Значение1 [cat_c1] => Значение2 [cat_a2] => Значение3 [cat_a3] => Значение4

[cat_b3] => Значение5 [cat_c3] => Значение6 [cat_a4] => Значение7 [cat_b4] => Значение8 [cat_c4] => Значение9 )

Как мне его в обработчике прининять: $cat = $_POST[?????]; - ?

Link to comment
Share on other sites

15 answers to this question

Recommended Posts

  • 0
Покажите, как вы передаете этот массив сценарию php. Имя у него есть вообще?

Не знаю как с именем. Пишу код print_r ($_POST);, и выводится что приходит в файл обработчик, и теперь это: Array ( [cat_a1] => Значение1 [cat_b1] => Значение1 [cat_c1] => Значение2 [cat_a2] => Значение3 [cat_a3] => Значение4 [cat_b3] => Значение5 [cat_c3] => Значение6 [cat_a4] => Значение7 [cat_b4] => Значение8 [cat_c4] => Значение9 ) надо через $_POST принять, вот как это сделать?

Link to comment
Share on other sites

  • 0

$yourarray = print_r($_POST, true);

Теперь массив сидит в $yourarray. Но это только в случае, если больше ничего в $_POST нету =)))

P.S. Как строка, разумеется.

Не знаю как с именем

А вы что-ли не знаете сами, где и как формируется этот массив?

Edited by Styx
Link to comment
Share on other sites

  • 0
$yourarray = print_r($_POST, true);

Теперь массив сидит в $yourarray. Но это только в случае, если больше ничего в $_POST нету =)))

P.S. Как строка, разумеется.

А вы что-ли не знаете сами, где и как формируется этот массив?

А как селать через такой код: $cat = $_POST[?????]; - ?

Link to comment
Share on other sites

  • 0
Дайте мне имя массива — я скажу, как. =))

Если бы у меня было имя массива, я бы разобрался. Вот код который создает этот массив и отправляет в файл обработчик:

<form action="update_prise.php" method="post" name="forma">

<input class="bt1" type="submit" value="Сохранить"><br><br>

<?php

$a=1;

$b=1;

$c=1;

do {

if ($myrow['cat_b'] == '' && $myrow['cat_c'] == '')

{

printf ("<br><br>

<input name='cat_a$a' value='%s' type='text' class='in1' size='160'>",$myrow['cat_a']);$a++;$b++;$c++;}

else

{

printf ("<br>

<input name='cat_a$a' type='text' class='in1' value='%s' size='115'>

<input name='cat_b$b' type='text' class='in1' value='%s' size='20'>

<input name='cat_c$c' type='text' class='in1' value='%s' size='20'>",$myrow['cat_a'],$myrow['cat_b'],$myrow['cat_c']);$a++;$b++;$c++;}

}

while ($myrow = mysql_fetch_array($result));

?>

</form>

Link to comment
Share on other sites

  • 0

Если так, то по идее он должен приходить не как некий массив в массиве $_POST, а как отдельные переменные — элементы массива $_POST. Т.е., видимо, обращаться можно просто:

$a = $_POST['cat_a1'];

$b = $_POST['cat_b1'];

и т.д.

Link to comment
Share on other sites

  • 0
Если так, то по идее он должен приходить не как некий массив в массиве $_POST, а как отдельные переменные — элементы массива $_POST. Т.е., видимо, обращаться можно просто:

$a = $_POST['cat_a1'];

$b = $_POST['cat_b1'];

и т.д.

В это массиве каждый раз может быть различное количество переменных как cat_a, так и cat_b и cat_c.

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

Link to comment
Share on other sites

  • 0

Остается так:

$yourarray = $_POST;

O_o

Только зачем, если можно пользоваться самИм суперглобальным массивом $_POST? Это, конечно, если в $_POST помимо этих значений не передаётся еще какой-то «хлам». А если передается, то лишние ключи можно просто выбрасывать из рассмотрения...

Link to comment
Share on other sites

  • 0
Остается так:

$yourarray = $_POST;

O_o

Только зачем, если можно пользоваться самИм суперглобальным массивом $_POST? Это, конечно, если в $_POST помимо этих значений не передаётся еще какой-то «хлам». А если передается, то лишние ключи можно просто выбрасывать из рассмотрения...

Спасибо! Я попробую.

Link to comment
Share on other sites

  • 0

<input name='cat_a[$a]' type='text' class='in1' value='%s' size='115'>
<input name='cat_b[$b]' type='text' class='in1' value='%s' size='20'>
<input name='cat_c[$c]' type='text' class='in1' value='%s' size='20'>",$myrow['cat_a'],$myrow['cat_b'],$myrow['cat_c']);$a++;$b++;$c++;}

Можно добавить квадратные скобочки cat_b[$b].

И уже на входе в скрипте вы получите массив cat_a, содержащий индексы-ID ваших полей.

$_POST['cat_a'], $_POST['cat_b'], $_POST['cat_с'].

работать с ними можно так:

foreach($_POST['cat_a'] as $id => $value){
// цикл
}

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy