2013-09-17 3 views
0

В моем плагине Wordpress, который я разрабатываю, я использую настройки WordPress api. В обратном вызове, который я использую для отображения параметра, который содержит переключатели, я включаю их и отключает их на основе значения флажка. В любом случае, я попытался использовать скрытый ввод, чтобы сохранить их ценность, даже несмотря на то, что их отключили, но это ухудшило ситуацию, так как оно всегда принимало значение последнего скрытого ввода, который в моем случае был «4».Отключено Значение потерянной радио кнопки и последнее скрытое входное значение передано

if(get_option('display_style') == 2){ 
$disabled = 'disabled'; 
} 
$html = '<input type="radio" id="onecolumn" class="cardchecked" name="card_columns" value="1"' . checked(1, get_option('card_columns'), false) . $disabled . '/>'; 
$html .= '<input type="hidden" name="card_columns" value="1" />'; 
$html .= '<label for="onecolumn">One</label>'; 

$html .= '<input type="radio" id="twoclumn" class="cardchecked" name="card_columns" value="2"' . checked(2, get_option('card_columns'), false) . $disabled . '/>'; 
$html .= '<input type="hidden" name="card_columns" value="2" />'; 
$html .= '<label for="twoclumn">Two</label>'; 

$html .= '<input type="radio" id="threecolumn" class="cardchecked" name="card_columns" value="3"' . checked(3, get_option('card_columns'), false) . $disabled . '/>'; 
$html .= '<input type="hidden" name="card_columns" value="3" />'; 
$html .= '<label for="threecolumn">Three</label>'; 

$html .= '<input type="radio" id="fourcolumn" class="cardchecked" name="card_columns" value="4"' . checked(4, get_option('card_columns'), false) . $disabled . '/>'; 
$html .= '<input type="hidden" name="card_columns" value="4" />'; 
$html .= '<label for="fourcolumn">Four</label>'; 
echo $html; 
+0

Что происходит, когда вы var_dump значение get_option ('card_columns')? –

+0

Он возвращает строку (1) «4» –

ответ

0

Скрытое вход name не может быть такой же, как ваш вход радиоприемника name, потому что это значение является постоянным и будет переопределить значение любого предыдущего ввода с тем же name.

if(get_option('display_style') == 2){ 
$disabled = 'disabled'; 
} 
$html .= '<input type="hidden" name="card_columns" value="1" />'; 
$html = '<input type="radio" id="onecolumn" class="cardchecked" name="card_columns" value="1"' . checked(1, get_option('card_columns'), false) . $disabled . '/>';  
$html .= '<label for="onecolumn">One</label>'; 
... 

Вам нужно будет установить значение скрытого поля ввода с помощью javascript. Размещение только одного скрытого ввода в верхней части вашего радиоизображения гарантирует, что если переключатель заблокирован, то передается значение скрытого ввода, но если ваши переключатели включены, они переопределяют значение скрытого ввода.

+0

Я думал, что радиолюбители не могут быть установлены как только для чтения. –

+0

Извините, это верно. Я пересмотрел свой ответ. – hcoat

+0

Да, я напишу код JQuery, который позволяет мне изменять значение скрытого ввода в соответствии с выбранным переключателем. Благодарю. –

Смежные вопросы