我刚刚开始学习jQuery、php等。我有一个带有两个属性的图像的div(scale)。我想在数据库中写入这些属性。由于它们可以更改(拖放),我希望每次将新项放入div时,都将所有img属性发送到数据库中进行更新。但不是发送div的每个子项,而是只发送(多次)当前(新添加的)项。
jQuery
stop: function(event, ui) {
$('#scale').children().each(function(){
var idd = $(this).attr("data-id");
var size2 = parseInt($("#scale > img").length);
var pos = parseInt($(this).index());
var rat = 1.00-(1/size2*pos);
$(this).attr('newRating', rat);
console.log("We send Movie with ID : " + idd + " on Position: " +pos + " to the DB");
$.post("userInfo.php",
{
id:idd,
rating:rat
},
function(data, status){
console.log("Data: " + data + "'nStatus: " + status + " 'nof " + $(ui.item).attr('data-id') + " 'nwith " + $(ui.item).attr('newRating') );
}
);
});
}
第一个console.log给了我正确的id和评级,但我从.post()调用中得到的数据是错误的。
php
include_once('db.php');
$id = $_POST['id'];
$rating = $_POST['rating'];
if (mysql_query("INSERT INTO MovieRating SET id = '$id', rating ='$rating' ")){
echo "Successfully Inserted";
}
else{
echo "Insertion Failed";
}
console.log("Data: " + data + "'nStatus: " + status + " 'nof " + $(ui.item).attr('data-id') + " 'nwith " + $(ui.item).attr('newRating') );
^^^^^^^ ^^^^^^
每次登录控制台时,您都会阅读ui.item。您想要当前迭代中的项。
console.log("Data: " + data + "'nStatus: " + status + " 'nof " + idd + " 'nwith " + rat );