URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID8
Нить номер: 954
[ Назад ]

Исходное сообщение
"не передаются переменные из скрипта"

Отправлено Alexander_Y , 16-Дек-02 19:30 
--------------------------------------------------------------------------
Подскажите пожалуйста,почему не передаются переменные из скрипта:
ни одна из переменных не передаётся,даже пришлось закомментировать
переменные  $_POST[ind[$n]] и $_POST[delete_ind[$n] - ну тут я может ещё синтаксиса просто не знаю(register_globals=On):
-----------
script.php
-------------------------------------------------------------------
<form method="post" action="delete.php">

<?php

for ($n=0;$n<10;$n++){

print "<input type=\"checkbox\" name=\"delete_ind$n\"
      ind$n=$n n=$n >";
      }
?>
<input type="submit" value="Test delete" n></form>
--------------------------------------------------------------------
delete.php
------------
<?php

$ind[0]=5;
echo "n=$n<br>";
echo "Start....";
echo "delete_ind= $delete_ind[$n]<br>";
echo  "ind0=$_POST[ind0]<br>";
echo  "ind1=$_POST[ind1]<br>";
echo  "ind2=$_POST[ind2]<br>";
echo  "name = $_POST[name]";
while ($n > 0){
       echo "Cicle start(while type)";
       echo "n=$n";
       // echo "ind=$_POST[ind[$n]]<br>";
       //echo "delete_ind= $_POST[delete_ind[$n]]<br>";
       $n=$n-1;
              };
?>
----------------------------------------------------------


Содержание

Сообщения в этом обсуждении
"RE: не передаются переменные из скрипта"
Отправлено konst , 16-Дек-02 20:21 
>--------------------------------------------------------------------------
>Подскажите пожалуйста,почему не передаются переменные из скрипта:
>ни одна из переменных не передаётся,даже пришлось закомментировать
>переменные  $_POST[ind[$n]] и $_POST[delete_ind[$n] - ну тут я может ещё синтаксиса
>просто не знаю(register_globals=On):
>-----------
>script.php
>-------------------------------------------------------------------
><form method="post" action="delete.php">
>
><?php
>
>for ($n=0;$n<10;$n++){
>
>print "<input type=\"checkbox\" name=\"delete_ind$n\"
>      ind$n=$n n=$n >";
>      }
>?>
><input type="submit" value="Test delete" n></form>
>--------------------------------------------------------------------
>delete.php
>------------
><?php
>
>$ind[0]=5;
>echo "n=$n<br>";
>echo "Start....";
>echo "delete_ind= $delete_ind[$n]<br>";
>echo  "ind0=$_POST[ind0]<br>";
>echo  "ind1=$_POST[ind1]<br>";
>echo  "ind2=$_POST[ind2]<br>";
>echo  "name = $_POST[name]";
>while ($n > 0){
>       echo "Cicle start(while type)";
>       echo "n=$n";
>       // echo "ind=$_POST[ind[$n]]<br>";
>       //echo "delete_ind= $_POST[delete_ind[$n]]<br>";
>       $n=$n-1;
>            
>  };
>?>
>----------------------------------------------------------
print "<input type=\"checkbox\" name=\"delete_ind$n\"
    ind$n=$n n=$n >";
=> STDOUT
<input type="checkbox" name="delete_ind3" ind3=3 n=3 >
- что это за html-kod?

<input type="checkbox" name=a1 value=b>desaription1<br>
<input type="checkbox" name=a2 value=b>desaription2<br>


"RE: не передаются переменные из скрипта"
Отправлено konst , 16-Дек-02 20:40 
У меня все заработало :
check it
1.<form action=.. method=post>

<form action=i2.php method=post>
<?php
for ($n=0;$n<10;$n++) {
   print "<input type=\"checkbox\" name=\"ind$n\" value=\"delete_ind$n\">ind$n<br>\n";
}
?>
<input type="submit" value="Test delete" ></form>
</form>


"RE: не передаются переменные из скрипта"
Отправлено Alexander_Y , 16-Дек-02 22:27 
>У меня все заработало :
Спасибо,проверю ваш код.


"RE: не передаются переменные из скрипта"
Отправлено Alexander_Y , 16-Дек-02 23:48 
>У меня все заработало :
>check it
>1.<form action=.. method=post>
>
><form action=i2.php method=post>
><?php
>for ($n=0;$n<10;$n++) {
>   print "<input type=\"checkbox\" name=\"ind$n\" value=\"delete_ind$n\">ind$n<br>\n";
>}
>?>
><input type="submit" value="Test delete" ></form>
></form>


Я так понимаю в этом коде должны переменная ind$n должна по очереди принимать значения delete_ind1,delete_ind2 и так далее.

ваш "i2.php"
------------------------------------
form action=res.php method=post>
<?php
for ($n=0,$q=10;$n<10;$n++,$q--) {
   print "<input type=\"checkbox\" name=\"ind$n\" value=\"delete_ind$n\">ind$n
\n";
}
?>
<input type="submit" value="Test delete" ></form>
</form>
-------------------------------------
Мой выводящий скрипт:

i2.php
------------------------
<?php
for ($n=0;$n<10;$n++) {
   print "ind$n=$ind$n<br>";
}
?>
-------------------------
А вывел он вот что:

ind0=0
ind1=1
ind2=2
ind3=3
ind4=4
ind5=5
ind6=6
ind7=7
ind8=8
ind9=9
--------------------------

Хотя скорее всего это я где-то ошибаюсь.


"RE: не передаются переменные из скрипта"
Отправлено konst , 17-Дек-02 12:57 
>for ($n=0;$n<10;$n++) {
>   print "ind$n=$ind$n<br>";
>}
>ind0=0
>ind1=1
>....
>ind9=9
>--------------------------
Try ${ind$n}, no $ind$n

"RE: не передаются переменные из скрипта"
Отправлено Alexander_Y , 18-Дек-02 02:51 
Вобщем пробовал снять значения - что-то не могу снять никак,подскажите если можете - нужно снять значение переменных,количество которых я не знаю заранее,т.е. что бы они передавались скриптом,наподобии такого,какой я хотел написать - вот только у меня что-то не получается что-то...Помогите пожалуйста.

"RE: не передаются переменные из скрипта"
Отправлено konst , 18-Дек-02 13:39 
>Вобщем пробовал снять значения - что-то не могу снять никак,подскажите если можете
>- нужно снять значение переменных,количество которых я не знаю заранее,т.е. что
>бы они передавались скриптом,наподобии такого,какой я хотел написать - вот только
>у меня что-то не получается что-то...Помогите пожалуйста.
==========
В Perl - все просто: Если передаются несколько переменных с одним именем ($a=1,$a=2...) то
их можно принять как массив @a =param('a');
В Php такая штука не проходит (кажется), поэтому надо или как у Вас - давать каждой переменной свое имя, + передавать в к.-н. переменной общее кол-во (для удобства последующей обработки) ИЛИ
используя одно имя переменной
посмотреть в какой переменной окружения они передаются (используйте в скрипте phpinfo() и увидите)
потом разобрать ее split'ом() и перегнать в массив. Конкретнее (код) если надо смогу выслать только завтра.



"RE: не передаются переменные из скрипта"
Отправлено J , 18-Дек-02 16:40 
>>Вобщем пробовал снять значения - что-то не могу снять никак,подскажите если можете
>>- нужно снять значение переменных,количество которых я не знаю заранее,т.е. что
>>бы они передавались скриптом,наподобии такого,какой я хотел написать - вот только
>>у меня что-то не получается что-то...Помогите пожалуйста.
>==========
>В Perl - все просто: Если передаются несколько переменных с одним именем
>($a=1,$a=2...) то
>их можно принять как массив @a =param('a');
>В Php такая штука не проходит (кажется), поэтому надо или как у
>Вас - давать каждой переменной свое имя, + передавать в к.-н.
>переменной общее кол-во (для удобства последующей обработки) ИЛИ
>используя одно имя переменной
>посмотреть в какой переменной окружения они передаются (используйте в скрипте phpinfo() и
>увидите)
>потом разобрать ее split'ом() и перегнать в массив. Конкретнее (код) если надо
>смогу выслать только завтра.


проходит
<input type='checkbox' name='a[]' value='0'>
<input type='checkbox' name='a[]' value='1'>


потом анализируется массив $a


"RE: не передаются переменные из скрипта"
Отправлено Alexander_Y , 18-Дек-02 16:44 
>Конкретнее (код) если надо смогу выслать только завтра.
Был бы очень признателен. : - )

"RE: не передаются переменные из скрипта"
Отправлено konst , 19-Дек-02 14:08 
>>Конкретнее (код) если надо смогу выслать только завтра.
Вероятно вы неправильно разбирали массив!
a1.php:
====
<html>
<body>
<form action=a2.php name=frm method=post>
<?php
    $n = 10;
    for ($i=1;$i<=$n;$i++) {
    print "<input type=text name='test[]'><br>\n";
}  
?>
<input type=submit>
</form>
</body>
</html>
===
a2.php:
====
<html>
<body>
<h1>rezult</h1>
<?php
#import_request_variables('pgc');
    while(list($a,$b) = each($test)) {
    if ($b == "") {
        print "val[$a] = undef<br>\n";
    } else {
        print "val[$a] = $b <br>\n";
    }
    }
#phpinfo();
?>
</body>
</html>
====



"RE: не передаются переменные из скрипта"
Отправлено Alexander_Y , 21-Дек-02 14:31 
Я прошу прощения,но мне не совсем понятен код,мне просто надо было несколько иное - для каждого выведенного значения из Mysql/PHP(а я заранее не знаю сколько будет выведено таких строк)генерируется checkbox,который провереяется в следующем скрипте.У меня генерируемые значения не передавались во второй скрипт.Для меня ваш код показался неподходящим для моей задачи(возможно я просто ещё недостаточно грамотен в PHP)Если можете,напишите мне код по моей теме - был бы вам благодарен(у самого ввиду малой грамотности и т.к. я новичёк - не получается - хотя был потрачен где-то день на решение этого вопроса)Помогите,если можете.
                                                                                                               Александр.

"RE: не передаются переменные из скрипта"
Отправлено konst , 23-Дек-02 12:30 
>Я прошу прощения,но мне не совсем понятен код,мне просто надо было несколько
>иное - для каждого выведенного значения из Mysql/PHP(а я заранее не
>знаю сколько будет выведено таких строк)генерируется checkbox,который провереяется в следующем скрипте.У
>меня генерируемые значения не передавались во второй скрипт.Для меня ваш код
>показался неподходящим для моей задачи(возможно я просто ещё недостаточно грамотен в
>PHP).
Все таки непонятно, в чем именно Ваша проблема...
М.б.:
1. Для того чтобы из checkbox передавать данные они должны выводится (генерироваться) внутри тегов
< F O R M ACTION=script-file> ... < / F O R M >
----
echo "< F O R M ACTION=my_script-file method=post|get>";
for(..)  ИЛИ while(..) { # Вывод из вашей БД
echo "<intup type=checkbox name=mych_box[] [checked]?> text";
}
echo "<input type=submit value=DONE>\n</form>";
====
Такой скрипт сгенерирует форму, при нажании на кнопку DONE => массив "mych_box[]" передастся скрипту "my_script-file", в котором его обрабатываешь как надо.
while(list($a,$b) = each($mych_box)) {
    print "$a = $b<br>\n";
}
N.B. Для checkbox значение "ON" устанавливается включением в < input > слова checked.

"RE: не передаются переменные из скрипта"
Отправлено Alexander_Y , 25-Дек-02 22:30 

Большое спасибо за помощь надеюсь всё-таки разберусь с этими checkbox-ами : - )


"RE: не передаются переменные из скрипта"
Отправлено Alexander_Y , 16-Дек-02 22:31 

><input type="checkbox" name="delete_ind3" ind3=3 n=3 >
>- что это за html-kod?
> <input type="checkbox" name=a1 value=b>desaription1<br>
> <input type="checkbox" name=a2 value=b>desaription2<br>
Ну..код то отладочный,и надо было сделать вывод из базы,где количество элементов заранее неизвестно.