运行通过AJAX调用发送的Javascript脚本

时间:2016-07-20 08:18:44

标签: javascript php jquery ajax

我不太了解ajax及其功能。我想通过ajax调用从另一个php页面调用一个php页面,但它不起作用。我只是希望显示警告,该警报位于" delete.php"当我按下" index.php"。

中的删除按钮时

dbconnect.php

<?php
$conn = new mysqli($host, $user, $password, $database);
// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
} 
?>

的config.php

<?php
$host="192.168.20.171";
$user="production";
$password="******";
$database="*****";
?>

的index.php

<html>
<?php
include 'config.php';
include 'dbconnect.php';
?>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.2/jquery.min.js"></script>
    <table border="1">
        <tr>
            <th>categoryId</th>
            <th>category</th>
            <th>Operations</th>
        </tr>
        <?php
        $sql_query = "select category_id,category from cscart_category_descriptions;";
        $result = $conn->query($sql_query);
        if ($result->num_rows > 0) {
            while($row = $result->fetch_assoc()) {
                echo '<tr><td>'.$row["category_id"].'</td><td>'.$row["category"].'</td><td><button class="deletedata" data-id="'.$row['category_id'].'">Del</button></td></tr>';
            }
        }
        else {
            echo "0 results";
        }
        ?>
        <script>
        $(document).on('click','.deletedata',function(){
            id = $(this).attr('data-id'); // Get the clicked id for deletion 
            $.ajax({
                type:'GET',
                url:'delete.php',
                data:{delete_id:id},
                success:function(response){
                    if (response == 'ok') {
                            alert("succes");
                    } else {
                        alert("fail");
                    }
                }
            })});
        </script>
    </table>
</html>

delete.php

<?php
include 'config.php';
include 'dbconnect.php';
    if($_GET('delete_id'))
    {
        echo"<script>alert('jjjj');</script>";

    }
?>

3 个答案:

答案 0 :(得分:1)

您在delete.php文件中回显的内容是ajax的response返回的内容。

所以在这段代码中:

$.ajax({
    type:'GET',
    url:'delete.php',
    data:{delete_id:id},
    success:function(response){
        if (response == 'ok') {
                alert("succes");
        } else {
            alert("fail");
        }
    }
})});

回复为<script>alert('jjjj');</script>,这会让您的代码输入其他内容并提醒fail

您需要做的是在ok中回显delete.php,然后在成功时提醒jjjj。那将是:

//delete.php
include 'config.php';
include 'dbconnect.php';
if($_GET('delete_id'))
{
    echo "ok";
}

你的ajax电话会是类似的,唯一不同的是你在成功时提醒你。

$.ajax({
    type:'GET',
    url:'delete.php',
    data:{delete_id:id},
    success:function(response){
        if (response == 'ok') {
            alert("jjjj");
        } else {
            alert("fail");
        }
    }
})});

通常,当您执行ajax调用并获得响应时,您的下一步操作将取决于收到的响应,因此通常您会遇到类似alert(response)的内容(或使用&#的任何其他操作) 39;已从服务器收到),而不是做静态警报。

在开始使用之前,您应该考虑更多地了解AJAX。

答案 1 :(得分:1)

当您向GET发出delete.php请求时,您可以将该script从该php发送到您当前的脚本,但您必须附加它:

success:function(response){
    // here response is the script tag from delete.php
    $(document.head).append(response);
}

A plnkr DEMO in action.

答案 2 :(得分:-1)

// delete.php

_

无论你在php页面中回显什么,都会在ajax响应中回复你。