Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Вебмастеру (http://forum.oszone.net/forumdisplay.php?f=22)
-   -   массив $_GET как его обработать (http://forum.oszone.net/showthread.php?t=103807)

darksmoke 27-03-2008 23:38 769404

массив $_GET как его обработать
 
есть 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 769436

GETом так и не получится. Поставь method="post" и поймаешь в $_POST.

darksmoke 28-03-2008 01:21 769438

тю.. а $_GET чего не получится, я его вижу если пишу echo $_GET;
просто не могу понять как ловить....
а чем $_POST ловить, можно маленький пример?

bruder 28-03-2008 01:27 769440

так это же массив. Не эхом, а хотя бы 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 769486

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

vadimiron 28-03-2008 10:29 769577

darksmoke,
Напишите в show.php
PHP код:

echo "<pre>";print_r($_GET);echo "</pre>"

С помощью этого увидите всю структуру $_GET-а.
$_GET это обычный массив и работают с ним как с любым массивом в PHP

bruder 28-03-2008 10:42 769589

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

Coutty 28-03-2008 17:29 769952

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

darksmoke 28-03-2008 20:52 770081

Ну не получается у меня схватить массив (
кинте плз пример... . Целый день мучаюсь (

bruder 28-03-2008 21:25 770097

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

darksmoke 28-03-2008 21:44 770108

Разабрался, спасибо.

Код:

$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 770210

хм.. я о такой возможности не знал, полазил в инете тоже ничего не нашел. Одна возможность - объеденить два значения, а при получении их разделить. И еще несколько рекомендаций: 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];
?>

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


Время: 12:45.

Время: 12:45.
© OSzone.net 2001-