尝试构建一个简单的jQuery,允许用户单击表行中的一个按钮,该按钮应运行单独的PHP脚本以从db行中删除该项并在一个操作中删除表行。 (一旦工作,将迁移到准备好的语句。)
HTML
def create
@pets = Pet.new(pet_params)
respond_to do |format|
if @pet.save
format.html { redirect_to @treat}
format.json { template: treats/show, status: :created, location: @pet }
else
format.html { render :new }
format.json { render json: @pet.errors, status: :unprocessable_entity }
end
end
end
JS
<tr id="wish_list_row2">
<td class="text-center">
<a href="#" data-toggle="tooltip" data-placement="bottom" title="Click to download this Resource" style="margin-right:15px;"><i class="fa fa-download"></i></a>
<a onclick="deleteWishList(3,1)" data-toggle="tooltip" data-placement="bottom" title="Click to remove this Resource from your Wish List"><i class="fa fa-gift"></i></a>
</td>
</tr>
<tr id="wish_list_row3">
<td class="text-center">
<a href="#" data-toggle="tooltip" data-placement="bottom" title="Click to download this Resource" style="margin-right:15px;"><i class="fa fa-download"></i></a>
<a onclick="deleteWishList(4,1)" data-toggle="tooltip" data-placement="bottom" title="Click to remove this Resource from your Wish List"><i class="fa fa-gift"></i></a>
</td>
</tr>
PHP
function deleteLike(rid,uid) {
$.post("remove_this_item.php?rid="+rid+"&uid="+uid);
$('#row'+rid).remove();
return false;
}
当我点击“删除”链接时,tr会按预期删除。但是,db行保持不变。如果我在url中的PHP页面上手动设置rid和uid,则db行将被删除。我试过改变一些事情(例如rid和uid命令),但还没有取得任何成功。
我还不熟悉JS,所以也许我搞砸了这个函数?
答案 0 :(得分:4)
您正在执行$.post
,但在您的php脚本中,您正在尝试检索$_GET[]
。将其更改为$_POST[]
,它应该可以正常工作。
答案 1 :(得分:2)
$.post()
是使用HTML method="POST"
的快捷方式,因此您需要将参数作为表单数据传递,而不是在查询字符串中传递:
$.post( "remove_this_item.php", { rid: rid, uid: uid } );
如果要传递查询字符串中的参数,请使用$.get()
:
$.get("remove_this_item.php?rid="+rid+"&uid="+uid);