Флажок не будет отправлять данные, если они не отмечены, поскольку они не считаются успешными ( согласно спецификации w3c здесь )
Если вы на самом деле поставите галочку и отправите заявку, она будет работать - на самом деле она работает, я только что проверил ее.
Вам нужно заключить вызовы в $_POST
в функции isset()
.
if( isset( $_POST['checkbox'] ) ) {}
Вызов $this->input->post('checkbox')
не должен давать вам неопределенную ошибку индекса, поскольку метод имеет дело с этой возможностью. метод Input::post()
возвращает false или значение флажка.
Редактировать -
В ответ на вашу поправку к вашему вопросу вы должны использовать элемент типа input
с атрибутом type
, установленным для отправки, чтобы отправлять данные формы без использования Javascript и т. Д. Эта кнопка должна быть ВНУТРИ <form></form>
, который вы намереваетесь отправить.
<input type="submit" value="Submit">
type="submit"
заставляет браузер отправлять данные, когда происходит событие отправки. Если вы хотите использовать другой элемент внутри или за пределами формы, для этого вам нужно использовать Javascript. Это, однако, может быть отключено для каждого браузера / пользователя и, как следствие, ненадежно.
// Standard Javascript
<form name="myform"...
<a onclick="javascript:document.myform.submit();" href="javascript:void(0)">Submit</a>
// jQuery
$('#my-a-tag-submit-button').live( 'click', function() {
$('#my-form').submit();
}