【发布时间】:2014-08-01 20:31:59
【问题描述】:
我对 ajax 很陌生,主要是今天。我有几个 HTML 表,用户可以在其中更改信息并更新数据库而无需重新加载页面,它第一次完美运行...
为了解释起见,我的网址是www.example.com/customers.php?action=viewAll
/************ Update Job Status ************/
$('.update-job-status').on('change', function() {
var status = $(this).val();
var id = $(this).parent().children('#id').val();
var formData = "id="+id+"&status="+status;
$.ajax({ // Start the PHP submission
url : "/resources/submit.php?action=updateJobStatus",
type: "POST",
data : formData,
success: function(data, textStatus, jqXHR) { //data - response from server
$('.notification-success').css('display', 'block').append('Status was updated!');
$('.notification-success').fadeOut(2000, function(){
$(this).empty();
});
}
});
});
AJAX 返回并让我们保持在同一页面上 (www.example.com/jobs.php?action=viewAll)
现在我尝试调用 AJAX 对表执行不同的操作...
/************ Delete Job ************/
$('.delete-job').on('click', function() {
var id = $(this).parent().children('#id').val();
var formData = "id="+id;
$.ajax({ // Start the PHP submission
url : "/resources/submit.php?action=deleteJob",
type: "POST",
data : formData,
success: function(data, textStatus, jqXHR) { //data - response from server
}
});
});
在这里,AJAX 将我们返回到 jobs.php。为什么所有 $_GET 参数都被截断?我认为是这样,因为 URL 栏上写着.../jobs.php?(它仍然有问号)
关于它为什么不维护它的页面的任何想法?
【问题讨论】:
-
.delete-job指的是没有type属性的submit或button元素的按钮/元素吗?我假设正在发生的事情是正在提交表单。一个简单的测试可能是在您的 AJAX 调用之后简单地放置return false。 -
是的,它是一个按钮,没有类型。
<button class="btn delete-job">Delete</button> -
将
type="button"添加到元素中就可以解决问题了。默认情况下,form中没有类型的button会自动提交封闭的form。 -
当您使用 POST 时,您不会在 URL 中输入
?后跟参数。您正在以一种无法正常工作的方式混合 GET 和 POST。 -
@developerwjk 那样做会有什么后果?
标签: php jquery ajax redirect parameters