0

したがって、以前は機能していたので、私の問題は 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>
4

1 に答える 1