Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.91/23: Рейтинг темы: голосов - 23, средняя оценка - 4.91
1 / 1 / 0
Регистрация: 13.05.2009
Сообщений: 244

Как передать параметр в PHP?

28.06.2010, 13:06. Показов 4426. Ответов 16
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Сильно не пинайте, но проблема такая
[code]
print '<td><form name='f_$x' action='krz.php?kvo=$kvo[$x]' METHOD=POST><INPUT TYPE=TEXT name='kvo$x' SIZE=5 value=$kvo[$x]> <INPUT TYPE=submit VALUE=' + ' class='mbtn'></form></td>
';
[/code
В файле krz.php $kvo=$_GET['kvo']; все время кажет 0 (т.е. первоначальное значение),
невзирая на то, что я ставлю разные цифры в этом самом INPUT TYPE=TEXT
Что-то делаю не правильно, но что? И как сделать?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
28.06.2010, 13:06
Ответы с готовыми решениями:

Возможно передать php переменной скриптовый параметр?
такое возможно сделать? &lt;script&gt; function(obj){ &lt;?php $qwe=obj.name; ?&gt; } &lt;/script&gt;

Как передать параметр в URL?
Есть переменная $SG=1; То есть при формировании страницы мы уже ее преопределили. Нам же нужно передать во время загрузки страницы в...

MVC маршрутизация, как передать параметр GET
Здравствуйте. Вообщем суть вопроса в том, что мне нужно перейти по ссылке на страницу записи по адресу site.ru/article?id=2 или как-то...

16
4 / 4 / 3
Регистрация: 25.05.2009
Сообщений: 2,576
28.06.2010, 15:08
я делаю так
<INPUT TYPE=TEXT name= 'kvo'.$x.' ' SIZE=5 value=$kvo[$x]>
и так
<INPUT TYPE=TEXT name= 'kvo['.$x.'] ' SIZE=5 value=$kvo[$x]>
тогда получаю массив.
Всё работает!
0
1 / 1 / 0
Регистрация: 13.05.2009
Сообщений: 244
28.06.2010, 16:21  [ТС]
В файле list.php
Code
1
2
3
4
5
global $kvo;
$kvo[]=0;
...
print '<td><form name='f_$x' action='krz.php?&kvo=$kvo[$x]' METHOD=POST><INPUT TYPE=TEXT name= 'kvo['.$x.'] ' SIZE=5 value=$kvo[$x]>  <INPUT TYPE=submit VALUE=' + ' class='mbtn'></form></td>
';
Реально, при просмотре кода получается action='krz.php?&kvo=0

В файле krz.php
Code
1
2
$kvo=$_GET['kvo'];
print '$kvo';
Все равно показывает 0
Что делать-то? Уже 'черепицею шурша - крыша едет неспеша...'
0
4 / 4 / 3
Регистрация: 25.05.2009
Сообщений: 2,576
28.06.2010, 17:23
<?
if($_POST['tx']){
for($i=0;$i<count($_POST['tx']);$i++){
echo $_POST['tx'][$i];
}
}
echo '<form method= 'post '>';
for($i=0;$i<10;$i++){
echo '<input type= 'text ' name= 'tx['.$i.'] '>
';
}
echo '<input type= 'submit '></form>';
?>
0
0 / 0 / 0
Регистрация: 04.06.2010
Сообщений: 128
28.06.2010, 18:35
Ты внимательно посмотри, у тебя после знака ? стоит & его нужно убрать
0
0 / 0 / 0
Регистрация: 04.06.2010
Сообщений: 128
28.06.2010, 18:38
хотя и так работает : )
0
evge
28.06.2010, 19:14
согласно документации PHP массивы в строку надо вставлять так:
<?
print 'action='krz.php?&kvo={$kvo[$x]}'';
?>
или так:
<?
print 'action='krz.php?&kvo='.$kvo[$x].' '';
?>
в случае:
<?
print 'action='krz.php?&kvo=$kvo[$x] '';
?>
результат не оределен.
4 / 4 / 3
Регистрация: 25.05.2009
Сообщений: 2,576
28.06.2010, 20:37
дело совсем не в этом!
Человек передаёт гет переменную в акшине формы, тоесть там она всегда равна начальному значению счётчика, в данном случае $x. То число, которое он хочет получить, тоесть нарастающее на единицу, скрыто в данном случае в пост переменной, тоесть в текстовом поле.
0
evge
28.06.2010, 21:09
<?
echo '<pre>';
print_r($_POST[tx]);
echo '</pre>';

echo '<form name=frm1 method=post>';
for($i=0;$i<10;$i++)echo '<input type=text name=tx[] >
';
echo '<input type=submit></form>';
?>
1 / 1 / 0
Регистрация: 13.05.2009
Сообщений: 244
29.06.2010, 09:44  [ТС]
Все отдельно взятые примеры работают на ура. Спасибо огромное.
Но в моем случае проблема-то немного в другом:
<INPUT TYPE=TEX...value принимает значение массива $kvo[$x], изначально равное нулю. Когда я вношу количество в это текстовое поле, то меняется его value, а не значение массива $kvo[$x], которое так и осталось =0.
В тоже время в action формы я пытаюсь передать все тот же элемент массива $kvo[$x].
Может в этом проблема? Я пытался передавать и так:
В файле list.php
Code
1
2
print '<td><form name='f_$x' action='krz.php?kvo=this.kvo['.$x.'].value' METHOD=POST><INPUT TYPE=TEXT name= 'kvo['.$x.'] ' SIZE=5 value=$kvo[$x]>  <INPUT TYPE=submit VALUE=' + ' class='mbtn'></form></td>
';
this и this.form как варианты...
Тогда в файле krz.php
Code
1
2
$kvo=$_GET['kvo'];
print '$kvo';
Все равно показывает например 'this.kvo[3].value' - именно эту строку. Цифра 3 - это номер элемента.
Попробую что-то выкрутить с помощью предложенных примеров... может что и получится.
0
3 / 3 / 6
Регистрация: 20.06.2010
Сообщений: 580
29.06.2010, 11:25
global $kvo;
$kvo[]=0;

print '<td><form name='f_$x'action='krz.php?kvo=$kvo[$x]' METHOD=POST>
<INPUT TYPE=TEXT name='kvo$x' SIZE=5 value=$kvo[$x]>
<INPUT TYPE=submit VALUE=' + '>
</form></td>
';

$kvo=$_GET['kvo'];
print '$kvo';

Что то совсем не понятно тут у тебя ... Что ты хочешь? Получить значение $kvo[$X]
или $kvo$x???

если у тебя что то вроде этого:

for($i=0;$i<10;$i++){
...
echo '<input type= 'text ' name= 'kvo$x] ' value = '$kvo[$x] '>
';
...
}

То на следующей странице можешь поймать данные вот так:

for($i=0;$i<10;$i++){
...
$temp = 'kvo$i';
$kvo[$i] = ${$temp}; //или $_POST['${$temp}'];
...
}
Должно работать, но ты опять таи уточни что ты хочешь ... у тебя одна и та же переменная передается через пост и через гет ...
0
3 / 3 / 6
Регистрация: 20.06.2010
Сообщений: 580
29.06.2010, 12:14
Обясняю как это рабоатет, вот простой скрипт который пересчитывает корзину:

//... Это динамическая форма с корзной, $korzina типа сессионный array в нем хранятся
артикулы, $korzina2 тоже типа array, в нем хранится количетсов каждого артикула,
$sizeschart - здесь хранятся размеры каждого артикула (сайт продает одежду ) )
....

print '<form action= 'catalog.php?action=basket&bec=rcalc ' method= 'post '>';
print '<table>';
while ($i<count($korzina)) :
print '<tr>';
print '<td>';
print '$korzina[$i]</td><td>';
print '<div align= 'center '><input class= 'text ' type= 'text ' size= '2 '
name= 'pos$i ' value= '$korzina2[$i] '></div></td>';
print '<td><div align=center><input class= 'text ' type= 'text ' size= '4 ' name= 'size$i ' value= '$sizeschart[$i] '></div></td></tr>';
$i++;
endwhile;
print '<tr><td colspan= '3 ' align= 'right '>
<input type= 'submit ' class= 'submit ' value= 'Пересчитать '>
</form></td></tr>';

//А здесь ловится action и идет перерасчет корзины:

if (isset($action)) {

switch ($action) {
....
case 'basket' :

if (isset($bec)) {
if ($bec == 'rcalc') :
$i=0;
while ($i<count($korzina)) :
$temp = 'pos$i'; $tempsize = 'size$i'; //${$temp} - используется для перемнных с динамическими названиями
if (${$temp} == 0) {
array_splice ($korzina, $i, 1);
array_splice ($korzina2, $i, 1);
array_splice ($sizeschart, $i, 1);
} else {
$korzina2[$i] = ${$temp};
$sizeschart[$i] = ${$tempsize}; }
$i++;
endwhile;
endif;
break;
}
}
}
0
1 / 1 / 0
Регистрация: 13.05.2009
Сообщений: 244
29.06.2010, 13:21  [ТС]
Мне надо получить значение $kvo[$X] - это количество товара. Спасибо за скрипт - буду разбираться!
0
4 / 4 / 3
Регистрация: 25.05.2009
Сообщений: 2,576
29.06.2010, 14:23
>Мне надо получить значение $kvo[$X] - это количество товара
Исходя из того, что ты написал, тебе нужно
count($_SESSION['kvo']);
0
1 / 1 / 0
Регистрация: 13.05.2009
Сообщений: 244
29.06.2010, 15:51  [ТС]
Нет. Во-первых это не сессионная переменная, а во-вторых $kvo[$x] это
не количество позиций в корзине, а количество каждого товара отобранного в корзину. Например
Свечи декоративные - 20 штук.
Шары - 50 штук.
Вот в первом случае $kvo[$x]=20, а во втором $kvo[$x]=50
На самом деле в action формы я передаю несколько параметров (артикул, наименование и т.д.), но это заранее определенные данные и они передаются без проблем, а вот количество (сколько же он хочет этих шаров?)изменяется от изначального нуля и с этим проблема...
0
4 / 4 / 3
Регистрация: 25.05.2009
Сообщений: 2,576
29.06.2010, 17:45
это делается не так, в массив ты заносишь id товара потом делаешь
array_count_values($array) и получаешь количество каждого товара.
0
1 / 1 / 0
Регистрация: 13.05.2009
Сообщений: 244
30.06.2010, 07:07  [ТС]
Сделал немного по другому. Вот сокращенный вариант:
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
$func='
<script language='JavaScript'><!--
 
function F_V(kvo,art,tov,cen,ediz,sop,tn,sag)
{
if (event.keyCode==13){
  if (kvo == 0)
  {
    alert('Введите количество');
    return (false);
  }
  alert(tov);
  location.href='krz.php?TName='+tn+'&Sg='+sag+'&art='+art+'&tov='+tov+'&ediz='+ediz+'&cen='+cen+'&sop='+sop+'&kvo='+kvo;
  return (true);
}
}
//--></script>
';
print $func;
.......
$x=0;
while ($x<$IndMax) {
print '<td><INPUT TYPE=TEXT name= 'kvo['.$x.'] ' SIZE=5 value= '$kvo[$x] ' onKeyPress= 'F_V(this.value,'$art[$x]','$tov[$x]',$cen[$x],'$ediz[$x]','$sop[$x]','$TName','$Sagolovok') '></td>
';
.......
$x++;
}
.......
так работает и передаются все параметры, как надо. Спасибо за помощь.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
30.06.2010, 07:07
Помогаю со студенческими работами здесь

Как передать POST параметр через форму, если обработчик не принимает его
Допустим есть форма, и в ней есть radio, необходимо передать параметр radio в массив, который уже передается в файл обработчик ( action в...

Как передать массив из базы данных (передать массив из php в javascript методом ajax)
&lt;?php //php страница qwe.php для обработки ajax запроса require_once &quot;blocks/head.php&quot;; ...

как послать параметр через <a href= 'show.php?id=$idkategoria '>$kategoria </a> ?
как послать параметр через &lt;a href= 'show.php?id=$idkategoria '&gt;$kategoria &lt;/a&gt; Может другая версия PHP виновата ? т.е. что...

PHP Session, как правильно получить GET параметр и сохранить его в сессии
Здравствуйте, есть две странички на первой ссылка с параметром, по нажатию осуществляется переход на вторую страничку которая принимает...

Как передать значение из php в js?
&lt;?php echo $this-&gt;locale()-&gt;toNumber($this-&gt;subject-&gt;getAttendingCount()) ?&gt; Нужно создать переменную и передать в другой файл формате...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Новые блоги и статьи
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes. А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит токи на L и напряжения на C в установ. режимах до и. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru