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

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

28.06.2010, 13:06. Показов 4415. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru