За последние 24 часа нас посетили 15727 программистов и 1664 робота. Сейчас ищут 913 программистов ...

Как передать объект Формы в PHP

Тема в разделе "PHP для новичков", создана пользователем FIL23, 1 ноя 2015.

  1. FIL23

    FIL23 Новичок

    С нами с:
    1 ноя 2015
    Сообщения:
    13
    Симпатии:
    0
    Доброго дня.
    Пишу код который должен заполнять данные из LDAP.
    Хочу все делать по средствам функций.
    Как передать элемент формы в PHP и в функцию для заполнения. Выведу свой код.
    Код (PHP):
    1. <html>
    2. <body> 
    3. <?php
    4.  
    5. function load_data_LDAP($LDAPestablish)
    6. {
    7.  $usersDN       = 'OU=Accounts,DC=rb,DC=local';            
    8.  $ldap_base_dn  = 'OU=организашион_юнит,DC=имя,DC=имя';
    9.  $search_filter = '(&(objectCategory=person))';
    10.  $result  = ldap_search($LDAPestablish, $usersDN, $search_filter, array("*"));
    11.  $entries = ldap_get_entries($LDAPestablish, $result); //передаем полученные данные в переменную
    12.  
    13.  echo "<br>";        //на след. строку
    14.  
    15.  for ($x=0; $x<$entries['count']; $x++) 
    16.   {
    17.   $full_name     = array_key_exists('displayname',         $entries[$x]) ? trim($entries[$x]['displayname'][0]) : '' ;
    18.  
    19.   echo "здесь хотел бы заполнять форму select элементами";  //создаем элемент списка
    20.   }
    21.   echo 'Процедура выполнилась.!';
    22. } 
    23.  
    24. if( isset($_POST['loadLDAP']))
    25.  {
    26.  load_data_LDAP($LDAPestablish);
    27.  echo 'Кнопка нажата!';
    28.  }
    29.        
    30. ?> 
    31.  
    32.  
    33.   <form method= "POST">
    34.   <select size= 10 multiple name="usersLDAP"> 
    35.   <option disabled>Выберите пользователей</option>
    36.   </select>
    37.   <br>
    38.   <input type = "submit" name = "loadLDAP" value = "Загрузить LDAP">
    39.   </form>
    40.  
    41. </body>
    42. </html>
     
  2. VLK

    VLK Старожил

    С нами с:
    15 дек 2013
    Сообщения:
    3.010
    Симпатии:
    58
    в форме не надо между названием и значение ставить пробелы, т.е. пиши:
    Код (PHP):
    1. type="submit" name="loadLDAP" value="Загрузить LDAP" 
    после нажатия кнопки у тебя все данные попадают в массив $_POST, там и ищи, в помощь функция var_dump
    Код (PHP):
    1. var_dump($_POST); 
     
  3. FIL23

    FIL23 Новичок

    С нами с:
    1 ноя 2015
    Сообщения:
    13
    Симпатии:
    0
    честно не понял как это работает.

    По другому зайду, логично ли работать так с объектами формы через РНР или же лучше для добавления/удаления/перемещния данных в объектах использовать JS ?
     
  4. VLK

    VLK Старожил

    С нами с:
    15 дек 2013
    Сообщения:
    3.010
    Симпатии:
    58
    ты что хочешь? без перегрузки страницы вызвать функцию? так такое не возможно одним только РНР, тут надо использовать JS + РНР, передавать данные через AJAX.
     
  5. FIL23

    FIL23 Новичок

    С нами с:
    1 ноя 2015
    Сообщения:
    13
    Симпатии:
    0
    Вот так правильно? я попробовал вставить JS в функцию PHP , но не работает.
    Код (PHP):
    1. <html>
    2. <body> 
    3. <?php
    4.  
    5. function load_data_LDAP($LDAPestablish)
    6. {
    7.  $usersDN       = 'OU=Accounts,DC=rb,DC=local';            
    8.  $ldap_base_dn  = 'OU=организашион_юнит,DC=имя,DC=имя';
    9.  $search_filter = '(&(objectCategory=person))';
    10.  $result  = ldap_search($LDAPestablish, $usersDN, $search_filter, array("*"));
    11.  $entries = ldap_get_entries($LDAPestablish, $result); //передаем полученные данные в переменную
    12.  
    13.  echo "<br>";        //на след. строку
    14.  
    15.  for ($x=0; $x<$entries['count']; $x++) 
    16.   {
    17.   $full_name     = array_key_exists('displayname',         $entries[$x]) ? trim($entries[$x]['displayname'][0]) : '' ;
    18.  
    19.     echo "<script type=\"text/javscript\">";
    20.     echo "var $objSel =document.getElementById(\"usersLDAP\")";
    21.     echo "addOption($objSel$full_name$full_name, true)";
    22.     echo "</script>";  
    23.   }
    24.   echo 'Функция отработала!';
    25.  
    26.  
    27. if( isset($_POST['loadLDAP']))
    28.  {
    29.  load_data_LDAP($LDAPestablish);
    30.  echo 'Кнопка нажата!';
    31.  }
    32.        
    33. ?> 
    34.  
    35.  
    36.  <form method= "POST">
    37.   <select size= 10 multiple name="usersLDAP"> 
    38.    <option disabled>Выберите пользователей</option>
    39.   </select>
    40.   <br>
    41.   <input type = "submit" name = "loadLDAP" value = "Загрузить LDAP">
    42.  </form>
    43.  
    44. </body>
    45. </html>
     
  6. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв