何が起こっているのか本当に言葉を失っているので、私はここで少し頭がおかしくなっています。いろいろと調べた結果、私はすべてをあるべき姿で行っていると信じています。
状況
ユーザー作成フォームを AJAX 経由でサーバーに送信しようとしていますが、codeIgniter はこの部分を通過することさえできません
if($this->input->post('blnAjax')) { // do something }
サーバーからコンテンツをほとんど問題なくフェッチするため、AJAX 側をクライアントに組み込むことに成功しました。通話に含まれる詳細の一部を次に示します。
Ajax コード
ajaxコードは、この質問の範囲を超えたはるかに大きなフレームワークの一部ですが、実際の呼び出し機能に関しては、イベントはevent.preventDefault(); event.stopImmediatePropagation();
実行を停止する必要があります. URL に到達可能であり、POST に設定されたリクエスト タイプで投稿値がシリアル化されている
requestpage: function(){
var strURL = params.strBaseURL + params.strRequestURL;
$.ajax({
type: params.strRequestMethod,
url: strURL,
data: params.strRequestParameters,
dataType: 'json',
success: function(json) {
methods.postrequestprocedure(json);
}
});
},
Ajax リクエスト
クライアント上ですべてがスムーズに実行され、期待どおりに JSON を含む XMLHttpRequest が返されます。ただし、フォームが送信されたときに、この時点に到達することさえありません。AJAXを使用している場合、Codeigniterはフォームが設定されているとは決して考えません
Parameters application/x-www-form-urlencoded
blnAjax 1
user_login_name[] fred
user_login_name[] ted
user_name[] Fred Flintstone
user_name[] Ted bear
usergroup_id[] 16
usergroup_id[] 16
コントローラ
コントローラーでは、アクションに関しては、失敗するまでのすべてのコードを含めました。コードの他の側面をテストしたところ、問題なく動作することに注意してください
public function user_add() {
/* Include extra script files needed for form handling */
$this->view['aryScript'][] = 'jquery.validate.min';
$this->view['aryScript'][] = 'jquery.validate.additional-methods';
/* Include extra CSS files */
$this->view['aryCSS'][] = 'form';
/* First check if the user has correct access rights */
if($this->view['intAccessLevel'] < INT_SUPER_USER_ACCESS_LEVEL) {
$aryResponse['notifications'][] = array('strType' => 'permanent',
'strMessage' => 'Denied!');
}
/* Import extra libraries and helpers */
$this->load->library(array('PasswordHash'));
$this->load->model('UserAdminModel');
$this->view['strTitle'] = 'Add User';
$this->view['aryButtons']['user_add_another'] = array(
'strDisplay' => $this->lang->line('user_add_another')
'strURL' => '#',
'strID' => 'user_add_another',
'aryData' => array('action' => 'form-clone')
);
if($this->input->post('blnAjax')) {
echo 'Big sigh of relief';
私の問題を読んでくれてありがとう