Грешка при постване на масив

deam0n

Moderator
Екип
Имам една форма с multiselect.. На localhost-а всичко бачка ОК и изпраща масив на избраните елементи от селекта.

Когато го кача на сървъра обаче ми изпраща празен масив. На какво може да се дължи този проблем?

Ето var_dump на POST. Option както виждате е празен масив..

Код:
 Array ( [nameBg] => PVC
        [orderField] => 50 
        [option] => Array
            [status] => 1 [id] => 10 
            [parentId] => 1 
            [page] => 1 
            [of] => orderField 
            [od] => DESC 
            [save] => Submit 
        )

Localhost-a ми е на Windows 7, а сървъра на FreeBSD.. Може ли този проблем да се дължи на някакви настройки на сървъра?
 
Radko каза:
дай ХТМЛ-а със селектите

и направи var_dump на $_POST['оption']

Var_dump на Option е string(5) "Array" и нищо повече..

HTML частта я генерирам с Zend. Генерирана изглежа така

HTML:
<select name="option[]" id="option" multiple="multiple" onclick="selectMultiple(this);">
    <option value="25" label="Полиране">Полиране</option>
    <option value="3" label="Цветове" selected="selected">Цветове</option>
    <option value="12" label="Цветове">Цветове</option>
    <option value="4" label="Дръжки" selected="selected">Дръжки</option>
    <option value="13" label="Дръжки">Дръжки</option>
</select>
 
HTML:
<select name="option" id="option" multiple="multiple" onclick="selectMultiple(this);">
    <option value="25" label="Полиране">Полиране</option>
    <option value="3" label="Цветове" selected="selected">Цветове</option>
    <option value="12" label="Цветове">Цветове</option>
    <option value="4" label="Дръжки" selected="selected">Дръжки</option>
    <option value="13" label="Дръжки">Дръжки</option>
</select>

Грешката ти я оправих името на формата не трябва да е option[] а option, когато си сложил атрибута multiple ;)
 
Radko каза:
Грешката ти я оправих името на формата не трябва да е option[] а option, когато си сложил атрибута multiple ;)

Не идва от там грешката. [] не пречи на multiple селекта. Работи си и с него и без него. ( http://www.onlinetools.org/tricks/using_multiple_select.php ).

Самата форма си я генерирам с ZF-ски метод. Обаче винаги ми изкача грешката 'Моля, изберете опции' и неще да изпрати масив с някакви стойности вътре.

PHP:
        $new = new Site_Resource_Option();
        $options = $this->getModel()->getAllOptions();

        foreach ($options as $option) {
            $catys[$option->id] = $option->{'name' . ucfirst($this->lang)};
        }
        if(isset($catys)) {
        
        // Multi select options
         $this->addElement('multiselect', 'option', array(
            'label' => $this->translate('Опции'),
            'decorators' => array('ViewHelper'),
            'description' => $this->translate('От тук се добавят Опции за главна Категория'),
            'multiOptions' => $catys,
            'validators' => array(
                array('GreaterThan', true, array(
                        0,
                        'messages' => array(
                            Zend_Validate_GreaterThan::NOT_GREATER => $this->translate('Моля, изберете опции')
                        )
                ))
            ),
            'onclick' => ('selectMultiple(this);')
        ));
        }
 
Ами там вече трябва да си видиш валидацията която слагаш, не разбирам от зенд не мога да ти помогна.
 
Radko каза:
Ами там вече трябва да си видиш валидацията която слагаш, не разбирам от зенд не мога да ти помогна.

Без тази валидация пак същия проблем става.. :(( Направо загубих супер много време с шибания бъг..
 
Този $catys, преди цикъла го направи да е array();

PHP:
$catys = array();
foreach($options as $option) {
/** ............. */
}

Съмняваме да е от тук, но го тествай.

----------

Ако не стане тествай, като направиш така:

PHP:
 'multiOptions' => array($catys),

Може пък и да стане, знае ли човек ?

----------

Ако не стане дай във цикъла едно echo, за да видим дали стойностите се показват, защото може да се окаже проблема, че е във масива $options.
Направо един var_dump. Дай и на обектите var_dump, за да видим каква информация съдържат, все ще се стигне до този бъг.

EDIT:

Тази инстанция къде е ползваш?

PHP:
$new = new Site_Resource_Option();
 
Намерих от къде идва проблема :))

PHP:
if ( in_array( strtolower( ini_get( 'magic_quotes_gpc' ) ), array( '1', 'on' ) ) )
            {
                $_POST = array_map( 'stripslashes', $_POST );
                $_GET = array_map( 'stripslashes', $_GET );
                $_COOKIE = array_map( 'stripslashes', $_COOKIE );
            }
 

Back
Горе