例: ユーザーが名前を入力または送信します。これらの名前は、backbone.localStorage.js を使用してローカルに保存され、backbone.js を使用して #sidebar に表示されます。そして、php を使用すると、最後に追加された名前が #content に表示されるはずです。そのため、ユーザーがこれら 2 つの名前を次々に入力すると、foo と bar になります。次に #sidebar (ここではバックボーンが機能します)
foo
bar
が表示され、#content (ここでは php が機能します)bar
が表示されます (最近追加されたため)。3 番目の名前をboo
入力すると、#sidebar に表示されます
foo
bar
boo
そしてイン #contentboo
が表示されます。
これを実現するために、backbone.js、 backbone.localStorage.js、jquery を使用しています。app.js には、データを処理および表示するためのモデル、コレクション、およびビューが含まれています。
js 部分は正常に動作しますが、php は動作しません。
index.php
<div id="myapp">
<div class="enter-data">
<form method="POST" action="index.php">
<input type="text" name="name" id="new-data" />
<input type="submit" value="Subscribe" name="submit" id="submit"/>
</form>
</div>
<div class="sidebar-data">
//here names are displayed which are stored locally using backbone
</div>
</div>
<div class="content">
<?php
function main() {
if(isset($_POST['name']) && !empty($_POST['name'])) {
$data =$_POST['name'];
echo $data;
}
}
main();
?>
</div>
app.js のイベント (ビュー)
events: {
"click #submit": "submitClick",
},
submitClick: function(e){
if (!this.input.val()) return;
Todos.create({title: this.input.val()});
this.input.val('');
}
上記のコードでは、データは js に渡されますが、php には渡されません。 つまり、上記の例のように #sidebar に名前が表示されますが、php 部分が機能していません。#内容は空白のままです。私も試してみました
events: {
"submit form": "submitForm",
},
submitForm: function(e){
if (!this.input.val()) return;
Todos.create({title: this.input.val()});
this.input.val('');
}
しかし、同じことが起こります。
では、データを php にも渡し、最近追加された名前を #content に表示するにはどうすればよいですか