Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/470.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
Php 具有多行和删除项的表_Php_Javascript_Mysql_Html - Fatal编程技术网

Php 具有多行和删除项的表

Php 具有多行和删除项的表,php,javascript,mysql,html,Php,Javascript,Mysql,Html,好的,我有一个输入函数,它允许我将项目添加到数据库中,并将其显示为一个表。作为表的一部分,我尝试添加删除和编辑按钮 我试图找出添加删除和编辑功能的最佳方法。我正在考虑编辑,我将不得不使用Javascript。然而,对于删除,我不确定是否应该使用PHP、Javascript或其中的某些组合 到目前为止,我的代码如下: <html> <header><title>Generic Web App</title></header>

好的,我有一个输入函数,它允许我将项目添加到数据库中,并将其显示为一个表。作为表的一部分,我尝试添加删除和编辑按钮

我试图找出添加删除和编辑功能的最佳方法。我正在考虑编辑,我将不得不使用Javascript。然而,对于删除,我不确定是否应该使用PHP、Javascript或其中的某些组合

到目前为止,我的代码如下:

<html>
    <header><title>Generic Web App</title></header>
    <body>
        <form action="addculture.php" method="POST">
              <span><input type="text" size="3" name="id" />
              <input type="text" name="culture" />
            <input type="submit" value="add" /></span>
        </form>
<?php
/* VARIABLE NAMES
 *
 * $con = MySQL Connection 
 * $rescult = MySQL Culture Query
 * $cultrow = MySQL Culture Query Rows
 */
$con = mysql_connect("localhost", "root", "");
if (!$con)
{
    die('Could not connect: ' . mysql_error());
}
mysql_select_db("generic");
$rescult = mysql_query("SELECT * FROM culture order by cult_id");
if (!$rescult) {
    die('Invalid query: ' . mysql());
}
echo "<table><tbody><tr><th>ID</th><th>Culture Name</th>";
while ($cultrow = mysql_fetch_array($rescult)) {
    echo "<tr>" . "<td>" . $cultrow[0] . "</td>" . "<td>" . $cultrow[1] . "</td>" . '<td><button type="button">Del</button></td>' . '<td><button type="button">Edit</button></td>' . "</tr>";
}
echo "</tbody></table>";
?>
    </body>
</html>

通用Web应用程序

目前我有del和edit设置为按钮,仅供参考。处理有多个按钮的情况的最佳方法是什么?

我首先想到的是为按钮添加一个值和名称:

<button type="button" value="$cultrow[0]" name="Delete">Delete</button>
<button type="button" value="$cultrow[0]" name="Edit">Edit</button>

如果我的回答过于宽泛,我深表歉意,但你的问题也是如此

编辑和删除都应该结合使用JavaScript和PHP代码;例如,当用户单击delete按钮时,您可以向服务器发送Ajax请求,从DB中删除记录,并且在服务器端调用成功返回后,使用JavaScript从标记中直观地删除记录。这同样适用于编辑功能

下面是关于如何使用JQuery执行ajax请求的精彩介绍:

用于删除行

1-将新页面命名为del_culture.php

session_start(); 
$id = base64_decode($_GET['id']); 
$con = mysql_connect("localhost", "root", "");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
$q = mysql_query("DELETE FROM culture WHERE cult_id = '".$id."' ");
if($q):
   echo "Done"; 
else:
   echo "ERROR";
endif;  
2-在页面中添加以下代码

 while ($cultrow = mysql_fetch_array($rescult)) 
{

echo "<tr>" . "<td>" . $cultrow[0] . "</td>" . "<td>" . $cultrow[1] . "</td>" . '    
<td><a href="del_culture.php?id='.base64_encode($cultrow['cult_id']).'">Delete</a>' . '<td><button type="button">Edit</button></td>' . "</tr>";
}
while($cultrow=mysql\u fetch\u数组($result))
{
回显“.$cultrow[0]”.$cultrow[1]”
“.“编辑”。”;
}
要编辑行,请添加编辑链接,就像我将其命名为edit_cult.php一样
输入时执行相同的操作从数据库中输入值,然后更新它这是您的javascript

function performAction(action) {
// ASSIGN THE ACTION
var action = action;

// UPDATE THE HIDDEN FIELD
document.getElementById("action").value = action;

switch(action) {

    case "delete":
        //we get an array with every input contained into the form, and the form have an id
        var aryCheck=document.getElementById('adminform').getElementsByTagName('input');

        //now we parse them
        var elm=null;
        var total=0;

        for(cptCnt=0;cptCnt<aryCheck.length;cptCnt++) {
            elm=aryCheck[cptCnt];
            if(elm.type=='checkbox') {
                //we have a checkbox here
                if(elm.checked==true){
                    total++;
                }
            }
        }
        if(total > 0) {
            if(confirm("Are you sure you want to delete the selected records?")) {
                // SUBMIT THE FORM
                document.adminform.submit();
            }
        }
        else {
            alert("You didn't select any records");
        }
        break;




    case "edit":
        //we get an array with every input contained into the form, and the form have an id
        var aryCheck=document.getElementById('adminform').getElementsByTagName('input');

        //now we parse them
        var elm=null;
        var total=0;

        for(cptCnt=0;cptCnt<aryCheck.length;cptCnt++) {
            elm=aryCheck[cptCnt];
            if(elm.type=='checkbox') {
                //we have a checkbox here
                if(elm.checked==true){
                    total++;
                }
            }
        }
        if(total > 1) {
            alert("You can only edit one record at a time");
        }
        else if(total == 0) {
            alert("You didn't select a record");
        }
        else {
            document.adminform.submit();
        }
        break;


    default:
}

你想在新页面中使用ajax编辑和删除,还是只使用php?只使用php,虽然我知道一些基本的ajax,但在这一点上它对我来说太复杂了。目前我只是在创建新页面,然后使用Javascript立即重定向回主页面。也许不是最有效的方法,但很容易。
function performAction(action) {
// ASSIGN THE ACTION
var action = action;

// UPDATE THE HIDDEN FIELD
document.getElementById("action").value = action;

switch(action) {

    case "delete":
        //we get an array with every input contained into the form, and the form have an id
        var aryCheck=document.getElementById('adminform').getElementsByTagName('input');

        //now we parse them
        var elm=null;
        var total=0;

        for(cptCnt=0;cptCnt<aryCheck.length;cptCnt++) {
            elm=aryCheck[cptCnt];
            if(elm.type=='checkbox') {
                //we have a checkbox here
                if(elm.checked==true){
                    total++;
                }
            }
        }
        if(total > 0) {
            if(confirm("Are you sure you want to delete the selected records?")) {
                // SUBMIT THE FORM
                document.adminform.submit();
            }
        }
        else {
            alert("You didn't select any records");
        }
        break;




    case "edit":
        //we get an array with every input contained into the form, and the form have an id
        var aryCheck=document.getElementById('adminform').getElementsByTagName('input');

        //now we parse them
        var elm=null;
        var total=0;

        for(cptCnt=0;cptCnt<aryCheck.length;cptCnt++) {
            elm=aryCheck[cptCnt];
            if(elm.type=='checkbox') {
                //we have a checkbox here
                if(elm.checked==true){
                    total++;
                }
            }
        }
        if(total > 1) {
            alert("You can only edit one record at a time");
        }
        else if(total == 0) {
            alert("You didn't select a record");
        }
        else {
            document.adminform.submit();
        }
        break;


    default:
}
<form id="adminform" name="adminform" action="<?php $_SERVER['REQUEST_URI'] ?>" method="post">
<img src="/admin/images/news.png" alt="news" title="news" />
<input type="button" class="back" id="backbutton" title="go back" onclick="performAction('back');" />
<input type="button" class="delete" id="deletebutton" title="delete" onclick="performAction('delete');" />
<input type="button" class="archive" id="archivebutton" title="archive" onclick="performAction('archive');" />
<input type="button" class="edit" id="editbutton" title="edit" onclick="performAction('edit');" />
<input type="button" class="add" id="addbutton" title="add" onclick="performAction('add');" />

<table id="admintable"> 
    <tr><th class='tdleft'>
        <?php
        if($err !=0) {
            echo"<input type='checkbox' name='all' onclick='checkAll(adminform);' />";
        }   
        echo "</th><th class='tdright'>Title</th></tr>";
        $z = 0;
        // Iterate through the results
        while ($row = $result->fetch()) {
            if($z % 2==0) { 
                //this means if there is a remainder
                echo "<tr class='yellow'>\n";
                $z++;
            } else { 
                //if there isn't a remainder we will do the else
                echo "<tr class='white'>\n";
                $z++;
            }
            echo "<td class='tdleft'><input type='checkbox' name='id[]' value='{$row['id']}' /></td><td class='tdright'><a href='/admin/news/edit-news-".$row['id']."'>{$row['title']}</a></td></tr>";  
        }
    ?>  
</table>
<input type="hidden" id="action" name="action"  value="" />
        // CARRY OUT RELAVANT ACTION
        switch($_POST['action']) {
            case "edit":

                foreach($_POST['id'] as $value) {
                    $id = $value;
                }   
                header('Location: /admin/blogs/edit-blog-'.$id);
                break;
            case "delete":
                if(!empty($_POST['id'])) {
                    //do your delete here
                }
                break;

            }
        }
            }