さて、基本的に私はいくつかのJavaScript配列を含むフォームを送信しようとしています.
これは、非表示フィールドにデータを追加してから自動的に投稿するという形式をとると予想していました。
ただし、奇妙なエラーが発生します。
動的に追加されたフィールドは非表示にならず、画面に表示されます。コードの動作が非常に遅い(これをローカルで実行しているため、理由がわかりません)
PHP ページにリンクしていませんが、代わりに次のように表示されます。10.0.0.2 への接続が中断されました。
このコードでは正解であり、答えは JavaScript 配列です
$("#questionForm").submit(function(e){
e.preventDefault();
var cform = $('<form></form>');
cform.attr("method", "post");
cform.attr("action"," <?php echo base_url()?>index.php/TestMaker/endTest");
var cfield = $('<input></input>');
cfield.attr("type", "hidden");
cfield.attr("name", "correct");
cfield.attr("value", correct);
cform.append(cfield);
cfield=$('<input></input>');
cfield.attr("type","hidden");
cfield.attr("name", "answers");
cfield.attr("value", answers);
cform.append(cfield);
$(document.body).append(cform);
cform.submit();
});
編集
隠れていた部分が修正されました。2 番目のフィールドにエラーがあります。非表示に設定していません。サーバー側コード: class TestMaker extends CI_Controller{
function __construct() {
parent::__construct();
}
function endTest(){
$correct_arr=$_POST('correct');
echo "hi";
//$question_ids=$_POST('question_ids');
//$question_types=$_POST('question_type');
}
}