Php 如何使用按钮将项目删除到数组中

Php 如何使用按钮将项目删除到数组中,php,arrays,Php,Arrays,我有一个带有数组的代码,每当我按下一个按钮时,它都会保存我需要的东西,所以这些项目会保存到我稍后用擦除按钮显示的数组中,但我不知道如何删除它,所以代码中有一部分显示了我的意思: echo "<table border=1>"; echo "<tr class='tabPreciosTitles'>"; echo "<td>Nom Activitat</td>

我有一个带有数组的代码,每当我按下一个按钮时,它都会保存我需要的东西,所以这些项目会保存到我稍后用擦除按钮显示的数组中,但我不知道如何删除它,所以代码中有一部分显示了我的意思:

echo "<table border=1>";
    echo "<tr class='tabPreciosTitles'>";
      echo "<td>Nom Activitat</td>
            <td>Nom Tipus Activitat</td>
            <td>Tipus Tarifa</td>
            <td>Temps/km</td>
            <td>Preu</td>";
    echo "</tr>";
for ($x=0;$x<count($savedArray[4]);$x++){
  echo "<tr>";
  echo "  <td>".$savedArray[0][$x]."</td>";
  echo "  <td>".$savedArray[1][$x]."</td>";
  echo "  <td>".$savedArray[2][$x]."</td>";
  echo "  <td>".$savedArray[3][$x]."</td>";
  echo "  <td>".$savedArray[4][$x]."</td>";
  echo "  <td><input type='submit' onclick='eliminar(".$savedArray[0][$x].",".$savedArray[1][$x].",".$savedArray[2][$x].",".$savedArray[3][$x].",".$savedArray[4][$x].")' class='carritoElim' value='elim'></td>";
  echo "</tr>";
}
echo”“;
回声“;
echo“Nom Activitat”
名为Tipus Activitat
塔里法提布斯酒店
Temps/km
Preu”;
回声“;

对于客户端中的($x=0;$x),以下代码有效

for ($x=0;$x<count($savedArray[4]);$x++){
  echo '<tr id="line' . $x . '">';
  echo "  <td>".$savedArray[0][$x]."</td>";
  echo "  <td>".$savedArray[1][$x]."</td>";
  echo "  <td>".$savedArray[2][$x]."</td>";
  echo "  <td>".$savedArray[3][$x]."</td>";
  echo "  <td>".$savedArray[4][$x]."</td>";
  echo "  <td><input type='submit' onclick='eliminar('line" . $x . "')' class='carritoElim' value='elim'></td>";
 echo "</tr>";
}

function eliminar($id) {
  var elem = document.getElementById($id);
  elem.parentNode.removeChild(elem);
}

for($x=0;$xphp是一种服务器端语言,这意味着一旦将响应发送到客户端(浏览器),在大多数情况下,所有“保存”的数据/变量都将丢失

我不喜欢你为这项任务选择的语言,但这里有一个解决方法

诀窍是在用户单击“消除”按钮时扫描整个数据表,然后将所有数据发送回服务器,并使用所选行重新创建数组。然后将整个数组打印回html格式并再次发送给用户

此方法的关键部分是,您需要打印希望在每个响应中保留的所有内容,以便可以将它们全部扫描回服务器端程序

我有一些示例代码供您参考,但我在编写它们时没有太多注意,所以除了bug和不正确的语法之外,这只是为了纯粹的演示目的,向您展示这个想法

打印所显示表格的示例代码:

echo "<form action='".$_PHP_SELF."' method='post'>";
echo "<input type='hidden' name='type' value='yourarrayname'/>";
echo "<table border=1>";
echo "<tr class='tabPreciosTitles'>";
  echo "<td>Nom Activitat</td>
        <td>Nom Tipus Activitat</td>
        <td>Tipus Tarifa</td>
        <td>Temps/km</td>
        <td>Preu</td>";
echo "</tr>";
for ($x=0;$x<count($savedArray[4]);$x++){
  if(strcasecmp($savedArray[0][$x],"-999")!=0){
  echo "<tr>";
  echo "<td><input type='text' name='0_".$x."' value='".$savedArray[0][$x]."'/></td>";
  echo "<td><input type='text' name='1_".$x."' value='".$savedArray[1][$x]."'/></td>";
  echo "<td><input type='text' name='2_".$x."' value='".$savedArray[2][$x]."'/></td>";
  echo "<td><input type='text' name='3_".$x."' value='".$savedArray[3][$x]."'/></td>";
  echo "<td><input type='text' name='4_".$x."' value='".$savedArray[4][$x]."'/></td>";
  echo "<td><button name='elim' value='e".$x."' type='submit'>elim</button></td>";
  echo "</tr>";
  }
}
echo "</table>";
echo "</form>";
echo”“;
回声“;
回声“;
回声“;
echo“Nom Activitat”
名为Tipus Activitat
塔里法提布斯酒店
Temps/km
Preu”;
回声“;

对于($x=0;$x当页面发送到浏览器时,数组就消失了。PHP变量在脚本结束后不会继续存在,会话变量除外。如果你只想在浏览器中删除数组,你必须使用Javascript。那么,这会删除具有选定id的行吗?它也会删除数组中的项目吗?不,这很简单,我需要这样做删除数组中的行和项的方法:/有很多方法可以做到这一点,但我认为这是新程序员使用纯php最容易理解的方法。
if($_POST!=null){       
    if(strcasecmp($_POST['type'],"yourarrayname")==0){
        for ($x=0;$x<count($savedArray[4]);$x++){
            if(strcasecmp($_POST['elim'],"e".$x)!=0){
                $savedArray[0][$x] = $_POST['0_'.$x];
                $savedArray[1][$x] = $_POST['1_'.$x];
                $savedArray[2][$x] = $_POST['2_'.$x];
                $savedArray[3][$x] = $_POST['3_'.$x];
                $savedArray[4][$x] = $_POST['4_'.$x];
            }
            if(strcasecmp($_POST['elim'],"e".$x)==0){
                $savedArray[0][$x] = "-999";
                $savedArray[1][$x] = "-999";
                $savedArray[2][$x] = "-999";
                $savedArray[3][$x] = "-999";
                $savedArray[4][$x] = "-999";
            }
        }
    }
}