За последние 24 часа нас посетили 31083 программиста и 1417 роботов. Сейчас ищут 922 программиста ...

PHP function

Тема в разделе "PHP для новичков", создана пользователем Danil005, 18 май 2017.

  1. Danil005

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

    С нами с:
    2 янв 2015
    Сообщения:
    528
    Симпатии:
    30
    Как передать значение select в массив функции?
    HTML:
    1. <select name="category[]" multiple>
    2.   <option>afaf</option>
    3.   <option>fafsaf</option>
    PHP:
    1. <?
    2. class Auth {
    3.    function join() {
    4.      print_r($this->r_category);
    5.    }
    6. }
    7.  
    8. $auth=new Auth();
    9. $auth->r_category=$_POST['category'];
    10. $auth->join();
    Проблема в том, что он выводит просто Array, больше ничего, что касаемо POST запроса, он корректно работает, так как без массива, все отлично..

    Если подробнее, вот часть из полного кода:
    PHP:
    1. class Auth {
    2. public function join() {
    3.  
    4.         $users=$this->db->getAll("SELECT * FROM ?n WHERE ?n=?s OR ?n=?s", 'users', 'user', $this->r_login, 'email', $this->r_email);
    5.        
    6.           if( $this->r_terms!='on' ) $error="err_11";
    7.           if( $this->r_password!=$this->r_confirm ) $error='err_5';
    8.           if( empty($this->r_confirm) ) $error='err_4';
    9.           if( strlen($this->r_password)<6 ) $error="err_9";
    10.           if( empty($this->r_password) ) $error='err_3';
    11.           if( !filter_var($this->r_email, FILTER_VALIDATE_EMAIL) ) $error='err_8';
    12.         if( $this->r_email==$users[0][email] ) $error='err_7';
    13.           if( empty($this->r_email) ) $error='err_2';
    14.         if( $this->r_login==$users[0][user] ) $error='err_6';
    15.           if( empty($this->r_login) ) $error='err_1';
    16.         if( $_COOKIE['_rgs']!=$this->r_session ) $error='err_10';
    17.         if( $error ) $this->notification=$error;
    18.         if( !$error ) $this->JoinInsertInDB();
    19.         $this->arr_notification='Echo: '.$this->r_category;
    20.      
    21.     }
    22. public function getArrNotification() {
    23.         print_r($this->arr_notification);
    24.     }
    25. }
    26.  
    27. $auth->r_login=$_POST['login'];
    28.       $auth->r_email=$_POST['email'];
    29.       $auth->r_password=$_POST['password'];
    30.       $auth->r_confirm=$_POST['confirm'];
    31.       $auth->r_category=$_POST['category'];
    32.       $auth->r_session=$_POST['session'];
    33.       $auth->r_terms=$_POST['terms'];
    34.  
    35. $auth->join();
    36. $auth->getArrNotification();
     
    #1 Danil005, 18 май 2017
    Последнее редактирование: 18 май 2017
  2. Алекс8

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

    С нами с:
    18 май 2017
    Сообщения:
    1.730
    Симпатии:
    359
    проверил... вот мой код
    PHP:
    1. <form method="POST">
    2.     <select name="category[]" multiple>
    3.         <option>afaf</option>
    4.         <option>fafsaf</option>
    5.     </select>
    6.     <input type="submit" />
    7. </form>
    8. <?php
    9. if(!empty($_POST['category'])){
    10.  
    11.     $auth=new Auth();
    12.     $auth->r_category=$_POST['category'];
    13.     $auth->join();  
    14.  
    15. }
    16.  
    17. class Auth {
    18.    function join() {
    19.      print_r($this->r_category);
    20.    }
    21. }
    вот такое вот у меня вернуло
    Код (Text):
    1. Array ( [0] => afaf [1] => fafsaf )
    вроде нет косяков..
     
    Danil005 нравится это.
  3. Danil005

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

    С нами с:
    2 янв 2015
    Сообщения:
    528
    Симпатии:
    30
    @Алекс8, я нашел косяк в 19 строке: $this->arr_notification='Echo: '.$this->r_category;
    Дело в том, что я делал print_r('Echo:'.$this->r_category); и вся проблема в 'Echo'.
    Убрал, и сделал код таким образом: print_r($this->r_category); - вывел нормальный массив.

    Спасибо, что откликнулись.