Нужна помощь с передачей данных через <form>

239
.
Задание.
Сделать таблицу умножения. Заполнить форму, куда вписать кол-во строк и столбцов, в зависимости что запишешь такая и будет таблица. Ниже код файла table.php
<?php
$act = $_GET['act'];
switch($act){
case 'result':
$cols = $_GET['cols'];
$rows = $_GET['rows'];
$color = 'blue';
//вывод таблицы умножения циклом for

echo "<table border='1' align='center'>";
for($tr=1;$tr<$rows;$tr++){
echo '<tr>';
   for($td=1;$td<$cols;$td++){
echo "<td>".$tr*$td."</td>";
}
echo '</tr>';
}
echo '</table>';
break;
default:
//forma
echo '
<form action="table.php?act=result" metod="post" >
Количество строк:
<input type="text" name="rows" value="10"/><br/>
Количество столбцов:
<input type="text" name="cols" value="10"/><br/>
<input type="submit" name="submit" value="Отправить"/>

</form>';
break;
}
?>


Вообщем он не работает, страница просто обновляется. Если код создания таблицы вынести в другой файл, то работает.
Сильно не пинайте, только начинаю изучать php
.
$_GET на $_POST замени
.
Krite (22.12.2011/08:03)
$_GET на $_POST замени
Пробовал, тоже просто обновляется. После заполнения формы и нажатия отправить, в адресной строке такой адрес http://127.0.0.1/table.php?row ... D1%8C, а должен быть таким чтоб switch работал http://127.0.0.1/table.php?act ... D1%8C
.
Трабла в строке <form action="table.php?act=result" metod="post" >
Правильно method

$act = $_GET['act'];
switch($act){
case 'result':
$cols = $_POST['cols'];
$rows = $_POST['rows'];
$color = 'blue';
//вывод таблицы умножения циклом for
echo "<table border='1' align='center'>";
for($tr=1;$tr <$rows;$tr++){
echo '<tr>';
   for($td=1;$td <$cols;$td ++){
echo "<td width='15px'>".$tr*$td."</td>";
}
echo '</tr>';
}
echo '</table>';
break;
default:
//forma
echo '
<form action="table.php?act=result" method="post" >
Количество строк:
<input type="text" name="rows" value="10"/><br/>
Количество столбцов:
<input type="text" name="cols" value="10"/><br/>

<input type="submit" name="submit" value="Отправить"/>
</form>';
break;
}
.
desay, спасибо, работает. А я час мучался, не мог понять почему не работает
.
Люди берегите воду - пейте пиво...
Zheka12345, И посмотри внимательно . Он считает не правильно , разве будет 2*2=1
поставь значение 0 вместо 1
.
desay
Zheka12345, Небольшое изменение. Данные с формы не мешало бы фильтровать хоть "как то"
$act = trim($_GET['act']);
switch($act){
case 'result':
$cols = intval($_POST['cols']);
$rows = intval($_POST['rows']);
if ($cols == 0 || $rows == 0)
{
echo 'Ошибочка!';
exit;
}

$cols = $cols+1;
$rows = $rows+1;

$color = '#ff0000';
//вывод таблицы умножения циклом for

echo "<table border='1' align='center'>";
for($tr = 1;$tr <$rows;$tr++){
echo '<tr>';

for($td = 1;$td <$cols;$td ++){
echo "<td width='15px' style='padding: 1px; text-align: center';>".$tr *$td."</td>";
}

echo '</tr>';
}
echo '</table>';
break;
default:
//forma
echo '
<form action="table.php?act=result" method="post" >
<b>Количество строк:</b><br/>
<input type="text" size="5" name="rows" value="10"/><br/>
<b>Количество столбцов:</b><br/>
<input type="text" size="5" name="cols" value="10"/><br/>

<input type="submit" name="submit" value="Отправить"/>
</form>';
break;
}
.
venom, правильно все считает, ты наверно не правильно смотрел.
Desay, я знаю что фильтровать нужно, просто сразу хотел привести к рабочему состоянию, а потом уже фильтровать
.
Без этих действий не правильно выводит...
$cols = $cols+1;
$rows = $rows+1;
.
desay (22.12.2011/08:47)
Без этих действий не правильно выводит...
$cols = $cols+1;
$rows = $rows+1;
у меня норм без этого.
Прикрепленные файлы:
Всего: 10