Ajax提交不起作用

时间:2015-04-02 22:28:50

标签: php jquery ajax

我会让它变得简单,我想在不使用表格等的情况下提交数据等等...... 我有这段代码:

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提交数据的方式,但至少我试过了。如果有人知道如何解决这个问题,我将不胜感激!

4 个答案:

答案 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)

使用PHP

的AJAX示例

我无法完全回答您的问题,但我会帮助您了解对http服务器的ajax请求以及如何相应地处理响应。

示例jQuery

$('.categ-edit').click(function() {
    $.get('/path/to/file.php', function(data) {
        console.log(data);
    });
});

示例file.php

<?php
echo json_encode('HELLO');

答案 3 :(得分:0)

你实际上两次调用“categoryactions.php”。首先作为异步调用(ajax),第二次作为重定向:window.location.href =“categoryactions.php”;

在第二次调用中,没有任何内容被发布,因此您的输出为空。此行不起任何作用 - 您应将其删除。

ajax调用在后台发生,因此您不会在浏览器中看到echo的输出。如果你真的想验证它是否正常工作,请用文件调用替换echo,将其写入文件。然后检查文件内容。