<form action="db.php" method="POST" id="addForm" name="addForm">
<input type="checkbox" name="use[]" value="development">Develop<br>
<input type="checkbox" name="use[]" value="sample">Sample<br>
<input type="checkbox" name="use[]" value="mass_production">Mass Prod<br>
</form>
最初に片付けるために..
1.送信すると、変数を使用してphpで投稿値を取得できます$_POST['use']
よね?
2. 複数のチェックボックスであるため、値 $_POST['use'] は配列なので、 でアクセスする必要があります$_POST['use'][0]
よ$_POST['use'][1]
ね ?
本当の問題は、送信時にコンソール (firebug) でエラーが発生したことです。
Error: Syntax error, unrecognized expression: [name=use[]]
、 とthrow new Error( "Syntax error, unrecognized expression: " + msg );
エラーにより送信できません。jquery-1.8.2.js を使用しています。私が間違っていることはありますか?
更新
以下のこれらのコードはエラーを作成しました。しかし、まだ理解できていません。
var jdialog = $('#addnew_dialog');
var jform = jdialog.find('[name=addForm]');
jform.validate({
errorClass : "err_label",
wrapper: "li",
rules: {
"code": "required",
"name": "required"
},
ignore: "",
errorPlacement: function(error, element) {
if( element.next().hasClass('ui-multiselect') ) {
error.insertAfter( element.next() );
} else {
error.insertAfter( element );
}
},
submitHandler: function(form) {
//use ajax check
//reset all error state
$.each($(form).serializeArray(), function() {
jform.find("[name="+this.name+"]").removeClass("ui-state-error");
});
var data = ajaxCheck("addForm", "ajaxCheckAddShape");
if(data['result']!="ok"){
updateTips(data['msg']);
$.each(data['err_fields'], function(index, value) {
jform.find("[name="+value+"]").addClass("ui-state-error");
});
return false;
}
$(form).find("[name=op]").val("add");
form.submit();
}
});
function ajaxCheck(formName , action) {
var jform = $("#"+formName);
jform.find("[name=op]").val(action);
var returnData = $.ajax({
type: "POST",
url: "db.php",
async: false,
timeout: 5000,
data: jform.serialize(),
dataType : "json"
}).responseText;
return $.parseJSON(returnData);
}