【问题标题】:PHP delete button... doesn't work(modal)PHP删除按钮...不起作用(模态)
【发布时间】:2015-07-04 21:33:19
【问题描述】:

有人可以告诉我我在这里做错了什么吗?我创建了一个表,每行都有一个删除按钮,单击时会弹出一个模式并询问我是否要删除该行。但是当我点击按钮时,什么也没有发生。为什么会发生这种情况?(我怀疑可能是因为INNER JOIN)任何想法如何解决这个问题?

list_book.php(内部连接):

 <table class="table table-bordered table-hover" id="datatable">
    <thead>
        <tr> 
            <th>Número</th>
            <th>Estante</th>
            <th>Obra</th>
            <th>Autor</th>
            <th>Categoria</th>
            <th>Ano Escolaridade</th> 
            <th>Observação</th>
            <th class="text-center">Opções</th>
        </tr>
    </thead>
    <tbody> 
        <?php
        $query = "SELECT B.number, B.shelf, B.title, B.author, B.obs, C.category_name, S.scholarity_name FROM book AS B 
        INNER JOIN category AS C ON C.id_category=B.category_id INNER JOIN scholarity AS S ON S.id_scholarity=B.scholarity_id";
        $res = mysql_query($query);
        mysql_set_charset('utf-8');
        if (!$res) {
            echo "Erro ao executar a query";
        } else {
            while ($dados = mysql_fetch_array($res)) {
                ?>
                <tr>
                    <td><?php echo $dados['number']; ?></td>
                    <td><?php echo $dados['shelf']; ?></td>
                    <td><?php echo $dados['title']; ?></td>
                    <td><?php echo $dados['author']; ?></td>
                    <td><?php echo $dados['category_name']; ?></td>
                    <td><?php echo $dados['scholarity_name']; ?></td>
                    <td><?php echo $dados['obs']; ?></td>
                    <td class="text-center">
                        <a href="#" class="btn btn-warning btn-xs"><span class="fa fa-edit"></span>&nbsp;Editar</a>
                        <a class="btn btn-danger btn-xs" data-toggle="modal" data-target="#<?php echo $dados['id']; ?>" data-whatever="@mdo"><span class="fa fa-trash"></span>&nbsp;Apagar</a>
                        <?php include('modal_delete.php'); ?>
                    </td>
                </tr>
                <?php
            }
        }
        ?>
    </tbody>
</table>

MODAL(BOOTSTRAP):

<div class="modal"  id="<?php echo $dados['id_book']; ?>" tabindex="-1" role="dialog" aria-labelledby="mySmallModalLabel" aria-hidden="true">
  <div class="modal-dialog">
     <div class="modal-content">
        <div class="modal-header">
            <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
            <h4 class="modal-title text-left">Apagar</h4>
        </div>
        <div class="modal-body text-left">
            <p>Deseja apagar este  registro?</p>
        </div>
        <div class="modal-footer">
            <a href="../delete/delete_book.php?id=<?php echo $dados['id_book']; ?>" type="button" class="btn btn-primary">Apagar</a>
            <button type="button" class="btn btn-default" data-dismiss="modal">Cancelar</button>
        </div>
    </div>
</div>

delete_book.php

<?php
session_start();
require("../../conexao/conexao.php");

$id = $_GET["id"];
$query= "DELETE FROM book WHERE id_book = $id";
$delete= mysql_query($query);
    if(!$delete){
        echo "Erro!! Não foi possivel apagar dado.";    
    }
    else{
        echo"Dado removido com sucesso!";
            header("Location: ../list/list_book.php");
    }?>

我是新手,所以如果有什么问题...请帮助我。

【问题讨论】:

  • 对于模态表单,使用 ajax 是更好的方法。
  • hmmm...ajax,我看看我能做什么。现在我想解决这个问题。谢谢...
  • 试试我的解决方案并确保 $_GET["id"] 不为空。
  • @Kowts 你确定支持mysql吗?你得到什么错误?
  • 尝试从该文件中删除所有内容,只留下一行echo 'This is delete_book.php page'。你能展示你的list-book.php 内容吗?因为如果您的查询成功,您会将用户重定向到那里。

标签: php mysql twitter-bootstrap inner-join delete-row


【解决方案1】:

您不能使用 GET 执行删除请求,创建一个表单而不是 anchor ,并在其中放置一个按钮。使用 post 方法提出您的要求

When you should use get & post request

【讨论】:

  • 其实也有delete方法,大部分框架都是用post&和hidden方法做的,看看吧。
【解决方案2】:

更改这一行:

$query= "DELETE FROM book WHERE id_book = $id";

$query= "DELETE FROM book WHERE id_book = ".$id;

【讨论】:

  • 这有什么不同? PHP 将在第一个插入 $id,因此不需要显式附加。
  • @EngineerCoder... 还是一样的东西,没什么变化,但谢谢。
  • 检查$id变量是否存在;如果存在证明您的数据库中有任何匹配的 id。
猜你喜欢
  • 1970-01-01
  • 2023-03-06
  • 1970-01-01
  • 2017-08-30
  • 2017-11-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多