我会让它变得简单,我想在不使用表格等的情况下提交数据等等...... 我有这段代码:
HTML
<span class="categ-edit">Edit</span>
<span class="categ-add">Add</span>
<span class="categ-delete">Delete</span>
JQUERY
$('.categ-edit').click(function() {
$.ajax({
url: 'categoryactions.php',
type: 'POST',
data: {action: 'edit'},
});
window.location.href = "categoryactions.php";
});
$('.categ-add').click(function() {
$.ajax({
url: 'categoryactions.php',
type: 'POST',
data: {action: 'add'},
});
window.location.href = "categoryactions.php";
});
$('.categ-delete').click(function() {
$.ajax({
url: 'categoryactions.php',
type: 'POST',
data: {action: 'delete'},
});
window.location.href = "categoryactions.php";
});
在categoryactions.php中我有这个:
PHP
<?php
$action = $_POST['action'];
echo $action;
?>
但是当它将我重定向到categoryactions.php时,我什么都没得到。我不确定这是用AJAX提交数据的方式,但至少我试过了。如果有人知道如何解决这个问题,我将不胜感激!
答案 0 :(得分:0)
您单击处理程序正在发出两个单独的请求。首先,您使用AJAX发送请求,然后您将转到该页面。当您查看页面时,您将看不到结果,因为结果是给予AJAX请求的。
AJAX的目的是避免更改页面。
试试这个:
$('.categ-edit').click(function() {
$.ajax({
url: 'categoryactions.php',
type: 'POST',
data: {action: 'edit'},
success: function(data) {
alert(data);
}
});
});
答案 1 :(得分:0)
使用Ajax重定向没有意义。您需要使用success
方法。
$('.categ-delete').click(function() {
$.ajax({
url: 'categoryactions.php',
type: 'POST',
data: {action: 'delete'},
success: function(data){
alert(data);
//or, put response in a div
$('#someDivId').html(data);
}
});
});
Ajax的目的是在不更改地址栏中的URL的情况下从请求中检索响应到另一个页面。它会在作为success
方法输入的变量中为您检索响应,然后对此执行某些操作。
答案 2 :(得分:0)
我无法完全回答您的问题,但我会帮助您了解对http服务器的ajax请求以及如何相应地处理响应。
$('.categ-edit').click(function() {
$.get('/path/to/file.php', function(data) {
console.log(data);
});
});
<?php
echo json_encode('HELLO');
答案 3 :(得分:0)
你实际上两次调用“categoryactions.php”。首先作为异步调用(ajax),第二次作为重定向:window.location.href =“categoryactions.php”;
在第二次调用中,没有任何内容被发布,因此您的输出为空。此行不起任何作用 - 您应将其删除。
ajax调用在后台发生,因此您不会在浏览器中看到echo的输出。如果你真的想验证它是否正常工作,请用文件调用替换echo,将其写入文件。然后检查文件内容。