研究目的で、基本的に$.post
JSONを介してデータベースに値を追加し、同時に更新された結果を返す単純なアプリケーションを作成しました。
大きな問題は、追加および更新時に空の要素で更新されることです。例: 既に 5 つのアイテムが追加されている場合、もう 1 つのアイテムを追加すると、更新されて、既に存在していた 5 つのアイテムに加えて、5 つの空のアイテムと、送信された値を含む 1 つのアイテムが返されます。
以下は、jQuery 用に送信されるコードです。
send_btn.bind('click', function () {
var that = $(this),
input_val = input_word.find('input').val();
that.find('.wrp').css('margin-left', -152);
$.post('post.php', { palavra: input_val }, function (data) {
console.log(data);
that.find('.wrp').css('margin-left', 0);
update();
});
});
以下は、情報を受け取る PHP ファイルです。post.php
$_palavra = $_POST['palavra'];
$query = mysql_query("INSERT INTO `glaubersampaio`.`postit` (`ID`, `PALAVRA`, `MOSTRAR`) VALUES (NULL, '".$_palavra."', '1');");
update()
関数:
function update() {
$.getJSON('request.php', function (data) {
for (i = 0; i < data.length; i++) {
$('<li class="postit" id="postit-' + data[i].id + '"></li>').appendTo(quadro.find('ul'));
$('#postit-' + data[i].id).html('<h4>' + data[i].palavra + '</h4>');
$('<div class="remover">REMOVER?</div>').appendTo('#postit-' + data[i].id);
}
})
.done(function () {
quadro.find('.loader').hide();
});
}
要求を作成する PHP ファイル:request.php
$query = mysql_query("SELECT * FROM `postit`");
$dados = array();
while($a = mysql_fetch_array($query)) {
$ID = $a['ID'];
$PALAVRA = $a['PALAVRA'];
$MOSTRAR = $a['MOSTRAR'];
array_push($dados, array("id"=>$ID, "palavra"=>$PALAVRA, "mostrar"=>$MOSTRAR));
}
echo json_encode($dados);