2016-07-07 9 views
0

ajaxポストといくつかの追加データを使用してシリアル化されたデータを送信しようとしています。私は次の方法で試しました:シリアル化されたデータとAjaxによる追加データの送信

$("#prw").on('click', function(e){ 

    var url = window.location.origin + "/newsletter/preview"; 

    var title = $('#title').val(); 
    var intro = $('#intro').val(); 
    var array = table.$('input[type="checkbox"], input[type="text"]').serialize() + "&title=" + title + "&intro=" + intro; 

    $.ajax({ 
     type: "POST", 
     url: url, 
     data: array 
    }).done(function(data){ 
     console.log("Response", data); 
    }); 

    e.preventDefault(); 
}); 

しかし、それはチェックボックスとテキストのみを表示し、タイトルとイントロは応答に表示されません。

$("#prw").on('click', function(e){ 

    var url = window.location.origin + "/newsletter/preview"; 

    var title = $('#title').val(); 
    var intro = $('#intro').val(); 
    var array = table.$('input[type="checkbox"], input[type="text"]').serializeArray(); 
    array.push({name: 'title', value: title}); 
    array.push({name: 'intro', value: intro});  

    $.ajax({ 
     type: "POST", 
     url: url, 
     data: array 
    }).done(function(data){ 
     console.log("Response", data); 
    }); 

    e.preventDefault(); 
}); 

それはどちらか動作しません: 私はまた、この方法を試してみました。このURLはCodeIgniterのコントローラに行く:

function preview() { 
    $post = $this->input->post(); 
    print_r($_POST); 
    return $post; 
} 
+0

リクエスト本体にJSONオブジェクトとしてデータを追加したいとします。現在使用している構文は、リクエストヘッダーのGETリクエストで使用するものです。 ajax POSTの実行例については、http://stackoverflow.com/questions/10214723/jquery-ajax-post-dataを参照してください。 – seN

+0

私はそのリンクを見て同様の方法でやろうとしましたが、うまくいきません。 – Barba

+0

また、Webブラウザのデバッガ機能を使用して、実際に送受信されているものを** LQQK AT **にします。あなたのプログラムの見方だけではなく、実際のデータストリームを見てください。 –

答えて

0

これは、オブジェクトを作成するためにはるかに簡単です:すべての

var url = window.location.origin + "/newsletter/preview"; 
var data = { title: $('#title').val() , intro : $('#intro').val() }; 
// I don't know what you table is.. 
// if you tell me the plugin I can help sending that that either 

$.ajax({ 
    type: "POST", 
    url: url, 
    data: $.param(data) 
}).done(function(data){ 
    console.log("Response", data); 
}); 
+0

これはDataTablesプラグインです – Barba

0

まず、答えはAPIエンドポイントを期待しているものに応じて異なる場合があることに注意してください。あなたが到達しようとしているコントローラー/方法を私たちに見せてもらえますか?

私は、エンドポイントがJSONオブジェクト(おそらくストリング化されている)を期待していると思います。これらの仮定で

、以下を試してみてください。

$("#prw").on('click', function(e){ 

var url = window.location.origin + "/newsletter/preview"; 

var title = $('#title').val(); 
var intro = $('#intro').val(); 
// That table reference is a bit unclear to me, is this a 3rd party library? 
var checkbox = false; // Grab your checkbox value here 
var inputVal = null; // Grab your input value here 

var data = { 
title: title, 
intro: intro, 
checkbox: checkbox, 
inputVal: inputVal 
}; 

$.ajax({ 
    type: "POST", 
    url: url, 
    data: JSON.stringify(data), 
    contentType: 'application/json' 
}).done(function(data){ 
    console.log("Response", data); 
}); 

e.preventDefault(); 

});

+0

テーブルがDataTableライブラリで、空の配列を表示します – Barba

+0

ですからあなたの問題はAJAX呼び出しとは関係なく、あなたのページからデータを取得することについてですか? – seN

+0

応答データにタイトルとイントロが表示されません入力データはOK – Barba

関連する問題