如何将mysql数据作为ajax参数传递

时间:2015-03-14 18:41:48

标签: php mysql ajax prototypejs

我想创建一个程序,我可以使用带有ajax的按钮删除mysql记录。我的问题是我不知道如何将mysql数据作为ajax参数传递,所以如果它与php文件中的查询匹配,它将被删除。我用php创建了一个,但它是一个静态程序,我希望它与ajax一起动态。

index.php:

    <?php

    require_once 'dbconfig.php';

    $query = $con->query("SELECT * FROM statuspost ORDER BY id DESC");

    while($i = $query->fetch_object()){

 echo $i->post ?><button onclick='ajaxWallpost('.<?php 
    $i->id ?>.')'>Remove</button>

<?php
    }
    ?>

            <script src='https://ajax.googleapis.com/ajax/libs/prototype  
    /1.7.2.0/prototype.js'></script>
                <script>

                    function ajaxWallpost(status){

                        new Ajax.Request('wallpost.php?type=post&  
    id='+status, {
                      method:'get',
                      onSuccess: function(transport) {

                      },
                      onFailure: function() { alert('Something went   
    wrong...'); }
                    });

                    }

                </script>               

wallpost.php:

<?php

require_once 'dbconfig.php';

if(isset($_GET['id'], $_GET['type'])){

    $post = $_GET['type'];
    $id = (int)$_GET['id'];

    switch($post){

        case 'post':
            $con->query("DELETE FROM statuspost WHERE id={$id}");
        break;

    }

}

任何帮助将不胜感激。感谢

2 个答案:

答案 0 :(得分:0)

HTTP重定向只是说“你正在寻找的东西?它实际上就在那里。”

它不会让浏览器停止使用XHR处理它并开始处理它就像你跟着链接一样。

index.php的内容将位于transport.responseText

如果您想将浏览器发送到新页面,请不要使用Ajax。

答案 1 :(得分:0)

试试这个会起作用:

由于AJAX发生在“幕后”(可以这么说),你的重定向只会中断对你的javascript处理程序的响应。所以PHP现在无法重定向您的浏览器,javascript可以。因此,请使用javascript重定向用户。

您需要返回该网址,并让您的回调将浏览器踢到新位置。

你正在进行ajax调用 - php标题将重定向ajax响应...而不是用户当前所在的页面。你必须在客户端修改你的javascript代码才能更改位置。

javascript重定向就像window.location.href =“http://mylocation”;

一样简单

使用Ajax和Javascript解决您的问题:

<script>

       function ajaxWallpost(status){

          new Ajax.Request('wallpost.php?type=post&id='+status, {
                      method:'get',
                      onSuccess: function(transport)
                      {
                       window.location.href = "index.php";
                      },
                      onFailure: function() 
                      { 
                       alert('Something went wrong...'); 
                      }
                          });
                                  }
</script>

在没有Ajax和Javascript的情况下解决您的问题:

 <?php

    require_once 'dbconfig.php';

    if(isset($_GET['id'], $_GET['type'])){

    $post = $_GET['type'];
    $id = (int)$_GET['id'];

    switch($post){

        case 'post':
            $con->query("DELETE FROM statuspost WHERE id={$id}");
        break;

    }

}

    $query = $con->query("SELECT * FROM statuspost ORDER BY id DESC");

    while($i = $query->fetch_object())
{
?>

    <a href="index.php?id=<?php $i->id ?>&type=post>Remove</a>

<?php
    }
?>