2015-07-29 2 views
1

У меня есть два переключателя, я хочу сгенерировать событие после нажатия на переключатель и проверить, какой переключатель установлен в контроллере PHP.Как проверить переключатель отмечен или нет в cakePHP

Мой исходный код для радио-кнопок,

<?php 
    echo '<label class="radio inline">'; 
    printf('<input class="radio" type="radio" name="Comments" id=radioShowAllComments" value = "all comments" checked="checked"/>'); 
    echo '<span class="'. ''.'">'.__('Show All Comments').'</span>'; 
    echo '</label>'; 

    echo '<label class="radio inline">'; 
    printf('<input class="radio" type="radio" name="Comments" id=radioOnlyMembersComments" value = "specific comments" />'); 
    echo '<span class="'. ''.'">'.__('Display Only Members of Comments').'</span>'; 
    echo '</label>'; 
?> 
+0

Зачем генерировать html как в CakePHP? Или вопрос помечен неправильно? Там нет необходимости, и это делает код более трудным для чтения, чтобы повторять статические строки с помощью php вместо того, чтобы иметь только статические строки в файле. – AD7six

+0

Где ваша форма? Дайте мне знать, это POST или GET. –

ответ

1

Попробуйте это: Вы можете зарегистрировать обработчик события щелчка на кнопке радио, а затем прочитать значение проверяемого радио-кнопки.

$(document).on("click", ".radio[name=Comments]", function(){ 
    var value = $(this).val(); 
    alert(value); 
}); 
0

Используйте форму ID #myForm -

$('#myForm').on('change', function() { 
     alert($('input[name=Comments]:checked').val()); 
    }); 
0

На контроллере вы можете использовать этот

$optComments=$this->request['Comments']; 
$somevar=($optComments=='specific comments')?yourFunction():otherFunction(); 

Или вы можете peroform на стороне клиента с JQuery AJAX

<script> 
    $(document).on("click", ".radio[name=Comments]", function(){ 
     var value = $(this).val(); 
    var url = "default url"; 
     if(value=='specific comments'){ 
    url = "some url"; 
    }else{ 
    url = "some url"; 
    } 
    $.ajax({url:url;method'POST';data:{}success:function(data){}}) 
    }); 
</script> 

Это пример кода, который вы m на основе этого выполняйте некоторые выдающиеся функции.

0

Я надеюсь, что вы используете последнюю версию (CakePHP3x) для своего проекта.

Теперь в вашем контроллере, используйте: $this->Request->data('Comments') [для форм метод GET, используйте $this->Request->query('Comments') вместо], чтобы принять выбранный параметр в контроллере.

Более подробную информацию об этом вы найдете в официальной документации here.

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