8

在此处输入图像描述

我是 php 的初学者,目前正在使用管理面板(您可以查看我的管理面板页面)。问题是我想通过这两个按钮传递序列号以进一步执行。但我找不到如何发送$value以编辑和删除特定行。

<div id="headin2"><strong> <h3>Admin page </h3></strong></div>
<?php 
    echo "<table width=\"100%\" border=\"0\" id=\"tab\">";
    echo "<tr>";
    echo "<th id=\"td1\">Serial No</th><th id=\"td2\">Account Title</th>
              <th id=\"td3\">Email</th><th id=\"td4\">Gender</th><th id=\"td5\">city</th>
              <th id=\"td6\">Course</th><th id=\"td7\">status</th><th id=\"td8\" colspan=\"3\">Action</th>";
    echo "</tr>";

    while ( $row = mysql_fetch_array($query))
    {
        $SN = $row['SN'];
        $actitle = $row['ac_title']; 
        $email = $row['email'];
        $gender  = $row['sex']; 
        $cite = $row['city'];
        $course = $row['CRS'];
        $status  = $row['status'];  

        echo "<tr>";
        echo "<td>".$SN."</td><td>".$actitle."</td><td>".$email."</td>
                  <td>".$gender."</td><td>".$cite."</td><td>".$course."</td><td>".$status."</td>
                  <td>"."<input type=\"button\" name=\"edit\" value=\"Edit\"/>
                  <input type=\"button\" value=\"Delete\" name=\"delete\" >"."</td>";
        echo "</tr>";
    }
?>

</table>
4

6 回答 6

10

您需要action(edit/delete)row id。不幸的是,如果没有一些 JS,按钮只会发布一个值。

您可以为每一行创建一个新表单,添加一个隐藏元素。例如:

<?php while ($row = mysql_fetch_array($query)) : ?>

  <tr>
    <!-- other cells -->
    <td>
      <form method="post" action="">
        <input type="submit" name="action" value="Edit"/>
        <input type="submit" name="action" value="Update"/>
        <input type="hidden" name="id" value="<?php echo $row['id']; ?>"/>
      </form>
    </td>
  </tr>

<?php endwhile; ?>

然后在发布后你可以检查actionid

if ($_POST['action'] && $_POST['id']) {
  if ($_POST['action'] == 'Edit') {
    // edit the post with $_POST['id']
  }
}
于 2013-11-06T14:14:16.403 回答
7

您可以通过以下两种方式之一进行操作。

jQuery 和 AJAX

对于每一个<tr>,到处都有一个删除按钮,

<a href="#" data-id="<?php echo $value; ?>" class="delete-row">Delete</a>

底部的脚本:

//Include jQuery here
<script language="javascript">
$('.delete-row').click(function (event) {
   event.preventDefault();
   var id = $(this).data('id');
   $.ajax({
      url: "url/to/delete",
      method: "POST",
      cache: false,
      data: { id: id },
      success: function (html) {
         $(this).parent().parent().remove();
      });
   });
});
</script>

这会将行的 ID 放入<a href>自身,data并使用 jQuery 发出 AJAX 调用以删除记录。如果删除成功,它将从表中删除该行。

老派按钮

对于每一个<tr>,到处都有一个删除按钮,

<form method="POST" action="url/to/delete">
<input type="hidden" name="id" value="<?php echo $value; ?>" />
<input type="submit" value="Delete" />
</form>

这是老式的方法,隐藏字段是后端如何知道要删除哪一行。

在后端,您仍然使用$_POST['id'];来获取要删除的记录的 ID。在上面的示例中,$value是每行的 ID,并且很可能类似于$row['id']来自foreach().

于 2013-11-06T14:09:48.437 回答
3

使用隐藏输入(例如<input type="hidden" value="your_value_here">

于 2013-11-06T14:09:10.953 回答
3

当您单击编辑时,它会打开一个带有相应记录的页面。您可以通过编辑链接或图像或按钮来完成。

<?php echo "<a href='".BASE_URL."admin/edit.php?id=$id' target='_blank'> <img src=".BASE_URL."/images/edit.png width=16 height=16 alt=Edit /> </a>";?>

对于删除,您可以使用 jquery。这是一个例子

echo "<a href='#' onclick='deletePrescription($id)' ><img src=images/document_delete.png width=16 height=16 title='Delete Prescription' alt=Delete /> </a>";    
<script type="text/javascript">
function deletePrescription(checkup_id) {
//alert(checkup_id);                
var agree=confirm("Do you really want to delete the prescription?");
    if (agree)
        {
            $.ajax
            ({
                type: "POST",
                url: "delete_prescription_admin.php",
                data: "checkup_id="+checkup_id,
                success: function(msg)
                {
                //
                //alert( "array Updated: " + msg );
                location.reload(true);
                }
            });

        }
    else
        {
        return false ;
        }

      }
     </script> 
于 2013-11-06T14:29:43.767 回答
2

PHP 在服务器端,所以你需要发送参数,解析它并让你的 php 行动。IE

编辑按钮将发出带有参数的 POST 或 GET 请求:id=123&action=edit

并且您的 PHP 将解析查询字符串:

$strID = $_GET['id'];
$strAction = $_GET['action'];

那就行动吧。。

if ($strAction=='edit'){
 // do something...
}

您的按钮应该以如下形式包装:

<form action="yourFile.php?id=<?=$SN ?>&action=edit" method="GET" id="formEdit<?=$SN ?>">
    <button type="submit" value="Edit">
</form>
于 2013-11-06T14:07:08.477 回答
1
<a href=register_course.php?id=$roll&code=".$row['course_code']."&name=".$row['course_name']."><input type=submit value=Register>

*这里 register_course.php 是您发送一些变量的文件,其中包含一些数据,当单击其值为 register 的按钮时,它将被传递 //课程代码是您要发送的变量...我将其值分配为 $ 代码...并将 id $roll 分配为 id 并将 course_name 分配为 $name....

另一个文件将获得具有一些数据的变量

于 2019-04-16T16:36:29.187 回答