PDA

Показать полную графическую версию : массив $_GET как его обработать


darksmoke
27-03-2008, 23:38
есть index.php

$conn = mysql_connect ("ххх", "ххх", "ххх")
or die ("Не могу подключится!");
mysql_select_db("ххх",$conn);
$result = mysql_query("SELECT * FROM category WHERE parent=0",$conn);
$num=0;
echo "<html><body><form name=test action=http://dvig/show.php method=GET>";
echo "<select name=klop size=1>";
while ($myrow = mysql_fetch_row($result))
{
$num++;
//printf ("<option value=%s>%s</option> ",$myrow[0],$myrow[2]);
echo "<option value='".$myrow[0]."'>".$myrow[2]."</option>";
}
echo "</select>\n";
echo "<input type=submit value=send>";
echo "</form></body></html>";
mysql_close($conn);


Не могу, взять результат в show.php
как его взять результат и начать с ним работать?

bruder
28-03-2008, 01:08
GETом так и не получится. Поставь method="post" и поймаешь в $_POST.

darksmoke
28-03-2008, 01:21
тю.. а $_GET чего не получится, я его вижу если пишу echo $_GET;
просто не могу понять как ловить....
а чем $_POST ловить, можно маленький пример?

bruder
28-03-2008, 01:27
так это же массив. Не эхом, а хотя бы print_r($_POST). Вот так вытащить переменную

<FORM METHOD="post" ACTION="<?$SELF_PHP?>">
<SELECT NAME="my">
<OPTION VALUE="odin">odin
<OPTION VALUE="dwa">dwa
</SELECT>
<INPUT TYPE="submit">
</FORM>

<?echo $_POST["my"]?>

дак я смотрю ты с базой работаешь, а как же такие первостепенные вопросы пропустил? Парадокс изучения php :)

Coutty
28-03-2008, 07:28
bruder, почему же GET'ом не выйдет? Точно также, как и $_POST: $_GET['nya'];

vadimiron
28-03-2008, 10:29
darksmoke,
Напишите в show.php
echo "<pre>";print_r($_GET);echo "</pre>";
С помощью этого увидите всю структуру $_GET-а.
$_GET это обычный массив и работают с ним как с любым массивом в PHP

bruder
28-03-2008, 10:42
to Coutty, блин, опозорился. Я get в формах не использовал еще никогда. Расскаиваюсь :pray: . Но и сам учусь походу. Кстати посмотрел твой socoban, впечатлило. Я эту технологию еще не знаю, интересно было глянуть. А как ты логику игры придумал? Я перескочил сразу на 10 уровень и офигел от сложности

Coutty
28-03-2008, 17:29
bruder, какую технологию? Рисование на canvas'е? Сам узнал полтора месяца назад)) Вот отсюда: http://forum.oszone.net/showthread.php?t=99162&page=1&pp=20 (рекомендую глянуть)
Игру эту изначально на мобильнике проходил. А повторить чужие наработки нетрудно на самом деле. Особенно уровни скопировать=Р
Потому в сокобане все уровни сразу и не открывают - чтобы постепенно опыта набирались =~_^= Хм... Надо учесть в следующих игрушках, что открыто в "печеньках" параметры передавать нельзя...
Ну ладно, это всё не по теме:) Если вопросы будут - в PM или другую тему.

darksmoke
28-03-2008, 20:52
Ну не получается у меня схватить массив (
кинте плз пример... . Целый день мучаюсь (

bruder
28-03-2008, 21:25
а какие проблемы? Пример рабочий сверху :) Просто post на get в method поменяй. Массив пишется заглавными буквами, $_GET[], когдато на этом попался. Код пришли, посмотрим где проблема

darksmoke
28-03-2008, 21:44
Разабрался, спасибо.


$conn = mysql_connect ("ххх", "ххх", "ххх")
or die ("Не могу подключится!");
mysql_select_db("ххх",$conn);
$result = mysql_query("SELECT * FROM category WHERE parent=0",$conn);
$num=0;
echo "<html><body><form name=test action=http://dvig/show.php method=GET>";
echo "<select name=klop size=1>";
while ($myrow = mysql_fetch_row($result))
{
$num++;
echo "<option value='".$myrow[0]."'>".$myrow[2]."</option>";
}
echo "</select>\n";
echo "<input type=submit value=send>";
echo "</form></body></html>";
mysql_close($conn);


В этом сдучае передается значение value. А как передать еще значение $myrow[2]?

bruder
29-03-2008, 00:53
хм.. я о такой возможности не знал, полазил в инете тоже ничего не нашел. Одна возможность - объеденить два значения, а при получении их разделить. И еще несколько рекомендаций: php тем хорош, что это встраиваемый язык, если все выводить эхом это плохо, затрачивается время на обработку функций. Я вынес создание селектбокса в функцию, чтобы разделить логику и представление:

<?
$conn = mysql_connect ("ххх", "ххх", "ххх")
or die ("Не могу подключится!");
mysql_select_db("ххх",$conn);

function build_option(){
$result = mysql_query("SELECT * FROM category WHERE parent=0",$conn);
$output = "";
while ($myrow = mysql_fetch_row($result)){
$output .= "<option value='".$myrow[0]."+".$myrow[2]."'>".$myrow[2]."</option>";
}
return $output;
}
?>

<html>
<body>
<form name="test" action="http://dvig/show.php" method="GET">
<select name="klop" size="1">
<?echo build_option();?>
</select>
<input type="submit" value="send">
</form>
</body>
</html>
<?mysql_close($conn);?>

<!-- вот собственно разделение переменной-->
<?
$opt = explode("+", $_GET['myselect']);
echo $opt[0]."<br>";
echo $opt[1];
?>

Я этот код НЕ ТЕСТИРОВАЛ, написал на глаз, поэтому могут быть ошибки. К тому же кто нить предложит лучшее решение, чего я тоже жду




© OSzone.net 2001-2012