За последние 24 часа нас посетили 39043 программиста и 1285 роботов. Сейчас ищут 1027 программистов ...

Передача "массива" методом GET

Тема в разделе "PHP для новичков", создана пользователем aego, 13 дек 2009.

  1. aego

    aego Активный пользователь

    С нами с:
    12 дек 2009
    Сообщения:
    2
    Симпатии:
    0
    Здравствуйте! Заренее прошу прощения за глупый (к сожалению, знаком с php только второй день) и наверняка не в первый раз задаваемый тут вопрос, но всевозможными поисками ответа на него я не нашел.

    Эта часть кода работает просто замечательно. Как видите, в цикле создается формочка с данными, которые пользователь должен изменить.
    Код (Text):
    1. <?php
    2.  $num=0;
    3.     $id=addslashes($_GET["id"]);
    4.     $bd=$_GET["bd"];
    5.     $link = mysql_connect("localhost", "root", "***")
    6.     or die("Невозможно соединиться с сервером баз данных: " . mysql_error());
    7.         /* Исправляем кодировку */        
    8.     mysql_query ("set character_set_client='cp1251'");
    9.     mysql_query ("set character_set_results='cp1251'");
    10.     mysql_query ("set collation_connection='cp1251_general_ci'");
    11.     mysql_select_db("kp") or die("Невозможно соединиться с базой данных");
    12.     $fields = mysql_list_fields("kp", "$bd", $link);
    13.     $columns = mysql_num_fields($fields);
    14.     print "<table border=1 cellspacing=0 cellpadding=5 align=center>";
    15.     print "<tr>";
    16.     for ($i = 0; $i < $columns; $i++)
    17.     {
    18.     $col_value=mysql_field_name($fields, $i);
    19.     print "<td>$col_value</td>";
    20.     }
    21.     print "</tr>";
    22. $query = "SELECT * FROM $bd WHERE id='$id'";
    23. $result = mysql_query($query) ;
    24. $arr = mysql_fetch_array($result);
    25.           print "<tr>";
    26. print "<form action='changefunk.php' method='get'>";          
    27.      for ($i = 0; $i < $columns; $i++)
    28.      {
    29.       print "<td><INPUT TYPE='text' SIZE='10' NAME='data[$i]' VALUE='$arr[$i]'></td>";
    30.       $num++;
    31.      }
    32.     mysql_free_result($result);
    33.     print "<INPUT TYPE='hidden' NAME='id' VALUE='$id'>";
    34.     print "<INPUT TYPE='hidden' NAME='bd' VALUE='$bd'>";
    35.     print "<INPUT TYPE='hidden' NAME='num' VALUE='$num'>";
    36.           print "</tr>";
    37.      print "</table>";
    38.   print "   <p align=center>";
    39. print "<INPUT TYPE=submit VALUE='Изменить' align=center>";
    40. print "</p>";
    41. print "</form>";
    42.     ?>
    А вот с приемом данных почему-то пробелема(отдельные переменные передались, в вот из "массива" - нет). Попытка вывестии переменные ни к чему не приводит. Мне кажется, что они не передаются второй странице.

    Код (Text):
    1. <?php
    2.     $id = $_GET["id"];
    3.     $bd = $_GET["bd"];
    4.     $num = $_GET["num"];
    5. echo "$id";
    6. echo "$bd";
    7. echo "$num";
    8. for ($i=0; $i < $num; $i++)
    9. {
    10.     $data[$i] = $_GET["data[$i]"];
    11.     echo "$data[$i]";
    12.     print "<br>";
    13. }
    14. ?>
    Подскажите, как правильно передать данные и как их использовать?
    Заранее благодарен.
    З.Ы.
    Прошу не кидать мне ссылки на гугл и документацию, я уже пытался разобраться с проблемой такими средствами...
     
  2. DarkElf

    DarkElf Активный пользователь

    С нами с:
    22 окт 2006
    Сообщения:
    1.632
    Симпатии:
    0
    aego
    1) передавайте формы методом post
    2) попробуйте $_GET['data'][$i] вместо $_GET["data[$i]"]
     
  3. obsrv

    obsrv Активный пользователь

    С нами с:
    2 окт 2008
    Сообщения:
    238
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    сделать в скрипте
    print_r($_REQUEST);
    и сразу станет понятно что и как.