PHP和AJAX不能一起工作

时间:2014-09-20 21:26:15

标签: javascript php jquery ajax

我在使用PHP,Javascript和AJAX制作删除系统时遇到了麻烦。我之前已经完成了,但这次 PHP和AJAX没有联系,Javascript脚本也不做任何事情。

在Javascript文件( server-log.js )中,警告某些内容无法正常工作,但它不会出现。这也不适用于AJAX / PHP处理程序文件( server-log.handler.php )。 控制台错误不会给出任何错误,所有文件中的网址也都是正确的。这是因为我可以找到Chrome中带有控制台错误的每个文件

JS脚本(server-log.js):

    $('.btn btn-xs btn-danger').click(function(){

    var press = $.this.attr('id');
    var press_url = 'action=delete&id='+press;

        $.ajax({
            type:       'POST',
            url:        'panel/includes/handlers/server-log.handler.php',
            data:       press_url,
            success:    function(responseText)
            {
                $.parseJSON(responseText);

                    /* If and else controlling system  */
                    if(responseText.indexOf(1) > -1)
                    {
                        $("#danger").append('<strong>Helaas!</strong> Het is niet gelukt om de gevraagde log rij te verwijderen');
                    }
                    else if(responseText.indexOf(2) > -1)
                    {
                        $("#danger").append('<strong>Helaas!</strong> Het opgegeven ID nummer is niet geldig');
                    }
                    else if(reponseText.indexOf(100) > -1)
                    {
                        $("#success").append('<strong>Goed!</strong> De gevraagde log is succesvol verwijderd');
                    }
                    else
                    {
                        $("#info").append('<strong>Info:</strong> Er is helaas een onbekende fout opgetreden <i>2255200914</i>');
                    }
            }
        });
});

HTML部分(server-log.php)

                    <div class="alert alert-success" style="display: none;" id="success"></div>
                    <div class="alert alert-danger" style="display: none"; id="danger"></div>
                    <div class="alert alert-info" style="display: none;" id="info"></div>
                <div class="error-log sscroll">
                <ul>
                <form method="post">
                <?php
                while($arrayLogs = $arrayqLogs->fetch_array())
                {
                ?>
                    <li>
                    <span class="green">[<?php echo $arrayLogs['date']; ?>]</span> 
                    <span class="red">[<?php echo $arrayLogs['action']; ?>]</span> 
                    [<?php echo $arrayLogs['name']; ?>] <?php echo $arrayLogs['url']; ?> 
                    <button class="btn btn-xs btn-danger" name="deleting" id="<?php echo $arrayLogs['id']; ?>"><i class="fa fa-times"></i></button>
                    </li>
                <?php
                }
                ?>
                </form>
                </ul>
                </div>

PHP处理程序部分(server-log.handler.php)

    <?php
include_once '../config.php';

    if(isset($_POST['action']) && $_POST['action'] == 'delete')
    {
        $intAction      = trim($_POST['id']);
        $error          = array();
        $bolean         = false;

            # Prepared statement
            $stmt = $mysqli->prepare("SELECT id,name,action,url,date FROM logs WHERE id = ?");
            $stmt->bind_param('i', $intAction);
            $stmt->execute();
            $intStatement = $stmt->num_rows();
            $stmt->close;

                /* Controlling part */
                if($intStatement == 0)
                {
                    $error[]    = 1;
                    $bolean     = true;
                }
                elseif(!ctype_digit($intAction))
                {
                    $error[]    = 2;
                    $bolean     = true;
                }
                    // Deleting and notifying
                    if($bolean == false)
                    {
                        $stmt = $mysqli->prepare("DELETE FROM logs WHERE id = ?");
                        $stmt->bind_param('i', $intAction);
                        $stmt->execute();
                        $stmt->close();

                            # Returning error code
                            $error[]    = 100;
                    }

            /* Returning the value in a readable way */
            header('Content-Type: application/json');
            echo json_encode($error);
    }
?>

所以这不是我第一次在我的网站上制作这个,但我还没有经常这样做,所以我认为我做了很多错事。我提前感谢你们帮忙,英语不是我的母语,对任何语法/拼写错误的单词感到抱歉。

1 个答案:

答案 0 :(得分:2)

此行不正确:

var press = $.this.attr('id');

应该是:

var press = this.id;

或:

var press = $(this).attr('id');

您还需要将$.parseJSON的结果分配给变量:

responseText = $.parseJSON(responseText);

或者您可以在dataType: 'json'调用中指定$.ajax(),jQuery会自动为您解析响应。