Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用MySQL和PHP删除页面上的项目_Php_Mysql_Sql - Fatal编程技术网

使用MySQL和PHP删除页面上的项目

使用MySQL和PHP删除页面上的项目,php,mysql,sql,Php,Mysql,Sql,我不确定我应该走哪条路去做我想做的事情。该页面使用php从mysql数据库加载一些数据。我这样做是为了,对于在数据库中找到的每个值,都会生成一个复选框,该复选框的增量值从0开始,依此类推。我想做的是让这个复选框处于选中状态,这样当他们按下垃圾桶图标时,它就会从数据库中删除该行。我不确定的是如何在点击按钮时删除它,然后重新加载页面。最好的方法是什么?我不需要代码或任何东西,我只是想不出实现这一点的最佳途径 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.

我不确定我应该走哪条路去做我想做的事情。该页面使用php从mysql数据库加载一些数据。我这样做是为了,对于在数据库中找到的每个值,都会生成一个复选框,该复选框的增量值从0开始,依此类推。我想做的是让这个复选框处于选中状态,这样当他们按下垃圾桶图标时,它就会从数据库中删除该行。我不确定的是如何在点击按钮时删除它,然后重新加载页面。最好的方法是什么?我不需要代码或任何东西,我只是想不出实现这一点的最佳途径

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Print Run</title>

<style type="text/css">
    .openRun{
        width:500px;    
    }
    .openRun th{
        text-align:center;
        background-color:#CCC;
    }
</style>
</head>
<body>
<div>
    <?php
        $totals = 0;
        $i = 0;
        $companyName = "";
        $quantity = "";
        $cardSize = "";
        $dateAdded = "";
        require("serverInfo.php");
        $printRun = mysql_query("SELECT * FROM `printRun` WHERE status = 'Open'");
        $row = mysql_fetch_array($printRun);
        echo 'Print Run #: ' . $row['Run'];
        $result = mysql_query("SELECT * FROM `printRun` WHERE status = 'Open'");

        while($row = mysql_fetch_array($result)){
            $companyName[$i] = $row['Company'];
            $quantity[$i] = $row['Quantity'];
            $cardSize[$i] = $row['Size'];
            $dateAdded[$i] = $row['Date'];
            $totals = intval($row['Quantity']) + $totals;
            $i++;
        }

        $arraySize = count($companyName);
        echo '<table class="openRun">';
        echo '<tr><th>Company</th><th>Quantity</th><th>Size</th><th>Date Added</th><th></th></tr>';
        for($i = 0; $i < $arraySize; $i++){     
            echo '<tr>';
            echo '<td>' . $companyName[$i] . "</td>";
            echo '<td>' . $quantity[$i] . "</td>";
            echo '<td>' . $cardSize[$i] . "</td>";
            echo '<td>' . $dateAdded[$i] . "</td>";
            echo '<td><input type="checkbox" name="box'. $i .'" value="'. $i .'" /></td>';
            echo '</tr>';
        }
        echo '<tr>';
        echo '<td style="font-weight:bold; border-style:solid; border-top-width:1px;">Totals</td>';
        echo '<td style="font-weight:bold; border-style:solid; border-top-width:1px;">' . $totals . "</td>";
        echo '<td></td>';
        echo '<td></td>';
        echo '<td><img src="images/trash.png" /></td>';
        echo '</tr>';
        echo '</table>';
        mysql_close($link);

    ?>
  <br />
  </div>


</body>
</html>

打印运行
.openRun{
宽度:500px;
}
.openRun th{
文本对齐:居中;
背景色:#CCC;
}

如果表结构中有一个标识符,则可以将

<input type='checkbox' name='ids[]' value='<?php echo $row['id']; ?>' />

如果表结构中有一个标识符,则可以将

<input type='checkbox' name='ids[]' value='<?php echo $row['id']; ?>' />

有两种方法可以做到这一点。如果您不熟悉AJAX,或者害怕使用它,我建议您快速阅读一下,以获得概述

使用AJAX

如果不希望重新加载页面,则需要使用AJAX从服务器异步发送和接收数据。一个典型的例子是:

$('.trash_link').on('click', function() {
   $.ajax({
      url: 'path/to/script.php',
      data: 'variable='+$('.input_class').val(),
      dataType: 'html',
      success: function(response) {
         $('.container').html(response);
      }
   });
});
我建议的关键是将所有布局逻辑放在控制器或模型函数中,这样您就不会重复自己。当数据发送到服务器时,它可以使用此函数通过AJAX函数发回所有布局。然后可以在容器元素中插入HTML

没有AJAX

您在这里所做的就是提交一个表单,然后重新加载页面。因此,您需要确保已经在页面上指定了标记。这实际上取决于你希望你的页面有什么风格——有些人喜欢重新加载,有些人喜欢AJAX的无缝性。如果您选择省略AJAX,则需要以下内容:

$('.trash_link').on('click', function() {
   $('form').submit();
});
如果您想:

$('.trash_link').on('click', function() {
   if(confirm("Are you REALLY sure?") {
      $('form').submit();
   }
});

有两种方法可以做到这一点。如果您不熟悉AJAX,或者害怕使用它,我建议您快速阅读一下,以获得概述

使用AJAX

如果不希望重新加载页面,则需要使用AJAX从服务器异步发送和接收数据。一个典型的例子是:

$('.trash_link').on('click', function() {
   $.ajax({
      url: 'path/to/script.php',
      data: 'variable='+$('.input_class').val(),
      dataType: 'html',
      success: function(response) {
         $('.container').html(response);
      }
   });
});
我建议的关键是将所有布局逻辑放在控制器或模型函数中,这样您就不会重复自己。当数据发送到服务器时,它可以使用此函数通过AJAX函数发回所有布局。然后可以在容器元素中插入HTML

没有AJAX

您在这里所做的就是提交一个表单,然后重新加载页面。因此,您需要确保已经在页面上指定了标记。这实际上取决于你希望你的页面有什么风格——有些人喜欢重新加载,有些人喜欢AJAX的无缝性。如果您选择省略AJAX,则需要以下内容:

$('.trash_link').on('click', function() {
   $('form').submit();
});
如果您想:

$('.trash_link').on('click', function() {
   if(confirm("Are you REALLY sure?") {
      $('form').submit();
   }
});

如果你只是想要一个垃圾桶,当你点击它时,它会重新加载页面并删除项目,那么你只需要把这个图像放在一个链接中,通过id或者行的任何唯一标识符就可以了

<a href="/delete.php?id=<?= $row['id'] ?>">Delete</a>

如果你只是想要一个垃圾桶,当你点击它时,它会重新加载页面并删除项目,那么你只需要把这个图像放在一个链接中,通过id或者行的任何唯一标识符就可以了

<a href="/delete.php?id=<?= $row['id'] ?>">Delete</a>

您可能正在研究AJAX。您熟悉吗?您的问题不在于PHP,而在于如何让浏览器向服务器发送事件。您应该首先了解
$\u GET
$\u POST
变量是如何工作的,以及[处理表单]()和PHP的一般情况。基于您的示例代码,我认为它应该很快变得清晰。@e-bacho2.0-他可能应该使用AJAX,但他提到了页面重新加载,他的示例代码根本没有表单或输入,因此我认为他需要先了解简单HTTP请求的基础知识,然后才能变得更复杂。我知道javascript和像这样传递值,但我还没有深入研究AJAX和HTTPrequests@shinjuo:您熟悉表单和get/post值吗?您可能正在研究AJAX。您熟悉吗?您的问题不在于PHP,而在于如何让浏览器向服务器发送事件。您应该首先了解
$\u GET
$\u POST
变量是如何工作的,以及[处理表单]()和PHP的一般情况。基于您的示例代码,我认为它应该很快变得清晰。@e-bacho2.0-他可能应该使用AJAX,但他提到了页面重新加载,他的示例代码根本没有表单或输入,因此我认为他需要先了解简单HTTP请求的基础知识,然后才能变得更复杂。我知道javascript和像这样传递值,但我还没有深入研究AJAX和HTTPrequests@shinjuo:您熟悉表单和获取/发布值吗?