我对AJAX很陌生。我使用返回HTML的javascript做了一些,但我正在努力处理我认为应该非常简单的事情。
我有一个带内联元素的标题:
<header>
<span class="right_alignment">
<a id="delete_work" href="">
<input id ="work_id" type="hidden" value="<?php echo $work_id ?>"/>
<i class="fa fa-plus" aria-hidden="true">
</i>
</a>
</span>
</header>
我想将$ work_id发送到PHP脚本,该脚本执行删除数据库中此记录的MySQL查询。它必须是一个POST请求,因为它是一个内联元素,我不能使用表单。所以AJAX就是这样。这是我的尝试:
$( document ).ready(function() {
$("#delete_work").click(function () {
$.ajax({
url: 'scripts/script-delete-work.php',
type: 'POST',
data: $('#work_id').val(),
});
});
});
现在script-delete-work.php不用担心我,所以很简单:
$edition_id = $_POST['work_id'];
echo $work_id;
但这种设置不起作用。我知道它是最简单的AJAX形式,但我无法确定如何发送数据或失败的内容。有什么帮助吗?
谢谢!
编辑 - 好的,我解决了数据问题。我现在拥有的是:
HTML
<span class="span_edit_right">
<a id="delete_work" href="">
<input id="work_id" type="hidden" value="<?php echo $work_id; ?>"/>
<i class="fa fa-trash-o" aria-hidden="true">
</i>
</a>
</span>
脚本:
$( document ).ready(function() {
$("#delete_work").click(function () {
var val = $('#work_id').val();
$.ajax({
url: 'scripts/script-delete-work.php',
type: 'POST',
data: { "work_id" : val },
success: function ()
{
alert("works!");
}
});
});
});
PHP
<?php echo $_POST['work_id'];
当我点击#delete_work
时,它会返回提醒"works"
,并重新加载页面,但不会显示包含<?php echo $_POST['work_id'];
的网页。
答案 0 :(得分:2)
请使用此代码
$( document ).ready(function() {
$("#delete_work").click(function () {
var val = $('#work_id').val();
$.ajax({
url: 'scripts/script-delete-work.php',
type: 'POST',
data: { "work_id" : val },
success: function ()
{
}
});
});
});
在您的服务器端只是
echo $_POST['work_id'];
答案 1 :(得分:2)
解决!
问题显然是使用AJAX你不会被发送到另一个PHP页面,所以我看不到echo $_POST['work_id'];
。但现在它有效,这是数据问题......
实际代码是:
<span class="span_edit_right">
<a id="delete_work" href="">
<input id="work_id" type="hidden" value="<?php echo $work_id; ?>"/>
<i class="fa fa-trash-o" aria-hidden="true">
</i>
</a>
</span>
脚本:
$( document ).ready(function() {
$("#delete_work").click(function () {
var val = $('#work_id').val();
$.ajax({
url: 'scripts/script-delete-work.php',
type: 'POST',
data: { "work_id" : val },
success: function ()
{
alert("works!");
}
});
});
});
谢谢!
答案 2 :(得分:1)
您没有正确发送数据。您应该以javascript对象形式传递数据,即 {&#39; parameter_name&#39;:parameter_value} ,以下是代码。
$( document ).ready(function() {
$("#delete_work").click(function () {
var wrkId = $('#work_id').val();
$.ajax({
url: 'scripts/script-delete-work.php',
type: 'POST',
data: {'work_id':wrkId},
});
});
});
或强>
$( document ).ready(function() {
$("#delete_work").click(function () {
var wrkId = $('#work_id').val();
$.post('scripts/script-delete-work.php',{'work_id':wrkId},function(response){
console.log(response);
});
});
});
答案 3 :(得分:0)
使用ajax成功函数。并返回$ edition_id而不是work_id
成功:功能(work_id)
答案 4 :(得分:0)
只是你没有得到复选框的值。
您忘记了.input:{
position:absolute;
bottom:0;
}
中的;
。