2017-11-07 17 views
0

私は結合したい2つのコード "スニペット"を持っていますが、実際にどのようにすればよいか分かりません。APIオブジェクト配列にHTMLフォーム入力を挿入する方法

HTMLフォームの入力をJSONオブジェクトにすることができました。 codepen hereを参照してください。

「ノートを追加」ボタンをクリックすると、入力値を取得してオブジェクトに追加したいのですが、それらをapiオブジェクト配列にPOSTします。下の画像とコード例:

HTML JSON enter image description here

// CREATE NEW NOTES 
var btn = document.getElementById('btn'); 

btn.addEventListener("click", function() { 

var request = new XMLHttpRequest(); 

request.open('POST', 'https://timesheet-1172.appspot.com/af25fa69/notes'); 

request.setRequestHeader('Content-Type', 'application/json'); 

request.onload = function() { 

    // When I click the "Add note" btn I want to grab the input values -> make them to an object -> POST them to my api object array. 

    // Like 

    // var body = { 
    // 'title': form.title.value, 
    // 'description': form.description.value 
    // } 

}; 

request.send(JSON.stringify(body)); 

}); 

にこれは私がオブジェクトのプロパティですでに設定されている変数を送ってみましょう私が持っている現在のコードです。 > JSONオブジェクトに変換 - - 私の質問は、私は、ダイナミック入力を行うことができますので、私は例カントーこれらを組み合わせることができますかについてれるしかし

SENDのJSON enter image description here

> APIオブジェクトでそれらを挿入します。下の画像を参照してください。アレイ。

私が間違った経路にいると思っている場合や解決策があると思われる場合は、私を修正してください。

ご質問やご要望がございましたら、お気軽にお問い合わせください。

ありがとうございます!

// E

+0

あなたはすでに必要なものすべてを持っているかのように見えます。あなたは上記のコードを取って、CodePenにあるものの中に入れてみましたか?もう少し明確にできますか? – Justin

+0

codepenコードは、入力をオブジェクトとして保存する最初の「スニペット」で、2番目の貼り付けコードはコードをAPIに送信する「スニペット」です。しかし、私は2つのコードスニペットを組み合わせることはできません。 (入力をhtmlファイルに保存してAPIに送信する)。私はcodepenコードをonload関数の中に入れて、新しいオブジェクトをAPIオブジェクト配列にPOSTします。私はそれをより良く説明することを願っています。 :) @ジャスティン – erikos93

答えて

0

あなたは、このようにそれらを組み合わせることができ(と私は、これが最良のアプローチだと思う):

提出し、それはJSONを作成し、それを送信するフォーム上で実行される関数を定義AJAX経由:

function formatJSONAndSend(form) { 
    var body = { 
    title: form.title.value, 
    description: form.description.value 
    }; 

    var request = new XMLHttpRequest(); 
    request.open('POST', 'https://timesheet-1172.appspot.com/af25fa69/notes'); 
    request.setRequestHeader('Content-Type', 'application/json');  
    request.send(JSON.stringify(body)); 
} 

そして、あなたはあなたのようなHTMLからそれを呼び出すことができます。

<form onsubmit="formatJSONAndSend(this);"> 
    Title: <input type="text" class="form-control" name="title" placeholder="Title goes here..." /><br /> Description: <input type="text" class="form-control" name="description" placeholder="Description goes here..." /><br /> 
    <input class="btn btn-primary" id="btn" type="submit" value="Add note"> 
</form> 

をクリックしてフォームを送信したら、ボタンを押してformatJSONAndSend()関数を呼び出すと、まずフォームからデータを取得してbodyオブジェクトに入れ、POSTを経由してWeb APIに送信します。

ここには実例があります:Codepen

+0

うーん、これは私のために動作していないようです。それはあなたのために働くのですか?私はさらにそれをテストします。お返事をありがとうございます! :) @Ante JablanAdamović – erikos93

+0

実例を追加しましたが、これは少し違っていますが、私はチェックして動作しています... 'Codepen'は' .html'と '.js'をコピーするのに最適ですあなたのローカルマシンにインストールしてテストしてください。 –

+0

ありがとう!私はそれを今すぐ稼働させることができました! @Ante JablanAdamović – erikos93

関連する問題