したがって、以前は機能していたので、私の問題は ajax 関数にあるとは確信していません。問題は実際のモデルから発生していると思います。だから私はこれを投稿します...それはかなり長いようで、何か間違ったことをしているかもしれないので、そこから始めましょう...
さて、モデルから次のコードを削除すると、ajax フォームは正常に送信されます。問題ない。しかし、このコードをそのままにしておくと、ロード中のアイコンが表示されて消えず、ページが次のステップに移らないだけです。私はFailed to load resource: the server responded with a status of 500 (Internal Server Error)
自分のモデルを指す を取得しています。
何か目立ちますか?
// Add or update campaign on database
public function add_campaign()
{
// grab campaign session data
$id = $this -> session -> userdata('user_name');
$campaign = $this -> session -> userdata('campaign_name');
$website = $this -> session -> userdata('campaign_user_website');
$headline = $this -> session -> userdata('campaign_headline');
$bar_color = $this -> session -> userdata('campaign_bar_color');
$head_color = $this -> session -> userdata('campaign_head_color');
$main_color = $this -> session -> userdata('campaign_main_color');
$thanks_msg = $this -> session -> userdata('campaign_thanks');
//grab scorecard options
$email_q = $this -> input -> post('email');
$brand_q = $this -> input -> post('brand');
$design_q = $this -> input -> post('design');
$usability_q = $this -> input -> post('usability');
$support_q = $this -> input -> post('support');
$service_q = $this -> input -> post('service');
$recommend_q = $this -> input -> post('recommend');
$suggestion_q = $this -> input -> post('suggestion');
$comments_q = $this -> input -> post('comments');
$created = date('Y-m-d H:i:s');
// insert OR if campaign already exists, update the campaign values and date modified
$this -> db -> query("
INSERT INTO campaigns (id, campaign, website, headline, bar_color, head_color, main_color, thanks_msg, email_q, brand_q, design_q, usability_q, support_q, service_q, recommend_q, suggestion_q, comments_q, created)
VALUES ('$id', '$campaign', '$website', '$headline', '$bar_color', '$head_color', '$main_color', '$thanks_msg', '$email_q', '$brand_q', '$design_q', '$usability_q', '$support_q', '$service_q', '$recommend_q' '$suggestion_q', '$comments_q', '$created',)
ON DUPLICATE KEY UPDATE campaign='$campaign', modified='$created'
");
}
必要な方への詳細情報
コントローラー機能:
public function embed_step()
{
//Create campaign on database
$this -> build_model -> add_campaign();
$data['embed_view'] = 'partials/embed'; // display view
if ($this -> input -> post('ajax')) // is 'ajax' variable from jQuery function exists, load:
{
$this -> load -> view($data['embed_view'], $data);
//$this->session->unset_userdata('user_url'); // kill session data
}
}
AJAX 関数 (部分):
var score_options = {
email: $('.email_score').val(),
brand: $('.brand_score').val(),
design: $('.design_score').val(),
usability: $('.usability_score').val(),
support: $('.support_score').val(),
service: $('.service_score').val(),
recommend: $('.recommend_score').val(),
suggestion: $('.suggestion_score').val(),
comments: $('.comments_score').val(),
ajax : '1' // needed for controller, to verify that request is ajax
};
//display ajax loader animation
$('#loading').show();
$.ajax({
url : 'ajax/embed_step',
type : 'POST',
data : score_options,
success : function(msg) {
$('.wizardContent').html(msg);
// output success in this container
$.scrollTo(0, 500);
// scroll to top on success
$('#loading').hide();
// hide loading icon
}
});
return false;
入力例を表示 (すべて同じ、マイナスの名前とクラスなど)
<!-- Scorecard options -->
<div class="scordOption roundtop">
<div class="checkicon"><input type="checkbox" name="email" class="email_score" value="1"></div>
<div class="scoreOptionTxt">What is your email address?</div>
</div>