Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/255.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_Checkbox - Fatal编程技术网

Php 复选框以随机方式删除列表

Php 复选框以随机方式删除列表,php,checkbox,Php,Checkbox,我有一个收藏车的列表,我在每个收藏车中添加了一个复选框,允许用户从收藏车列表中删除收藏车。问题是复选框的工作方式不同:如果我选中任何一辆车(第一辆、第二辆、最后一辆或多辆车),然后点击“提交”,则将被删除的车是最后添加的车,而不是删除选定的车。如果我检查多辆车,发生同样的事情,只删除最后添加的车 PHP public function GetFavoriteCars() { include("inc/membersite_config.php"); $email = $fgmembers

我有一个收藏车的列表,我在每个收藏车中添加了一个复选框,允许用户从收藏车列表中删除收藏车。问题是复选框的工作方式不同:如果我选中任何一辆车(第一辆、第二辆、最后一辆或多辆车),然后点击“提交”,则将被删除的车是最后添加的车,而不是删除选定的车。如果我检查多辆车,发生同样的事情,只删除最后添加的车

PHP

public function GetFavoriteCars() {
  include("inc/membersite_config.php");
  $email = $fgmembersite->UserEmail(); // this is how I take the e-mail of the 
  global $base_path;
  $FavoriteCars = $this->QueryResult("SELECT * FROM favoritecar WHERE email='$email'"); 
    if (count($FavoriteCars)) {
        $mystring='http://';
    echo '<form action="" class="deletebutton" method="post">';
    echo '<input type="submit" name="deletebtn" id="deletebtn" value="Submit">';
    echo '<div class="roster_slideri-login">';
        foreach ($FavoriteCars as $FavoriteCar) {
      $carlink = $FavoriteCar->favoritecarlink;
      echo '<div class="car-info-col-login">';
      echo '<input type="checkbox" name="checkbox" value="'.$carlink.'" class="checkbox-login">';
      $val=strpos($FavoriteCar->favoritecarimg,$mystring);
    if ($val !== false) {
      if($FavoriteCar->favoritecarimg!='') {
                echo '<a href="'.$base_path.'detail-page_'.$FavoriteCar->favoritecarlink.'">';
                echo '<img src="'.$FavoriteCar->favoritecarimg.'" alt="'.$FavoriteCar->favoritecartitle.'" width="160" height="120" />';
        echo '</a>';
                echo '<div class="name">'.substr($FavoriteCar->favoritecartitle,0,20).'</div>';
        echo '</div>'; //car-info-col-login
              }
            } else {
    echo '<a href="'.$base_path.'detail-page_'.$FavoriteCar->favoritecarlink.'">';
            echo '<img src="'.$base_path.'uploads/no-img.jpg" alt="'.$FavoriteCar->favoritecartitle.'" width="160" height="120" />';
    echo '</a>';
            echo '<div class="name">'.substr($FavoriteCar->favoritecartitle,0,20).'</div>';
            echo '</div>'; 
            } 
        }
    echo '</form>';
        if (isset($_POST["checkbox"])) {
      $this->QueryResult("DELETE from favoritecar WHERE email='$email' AND favoritecarlink='$carlink'");
      echo '<script type="text/javascript">alert("Car had been deleted");</script>';
        }
      echo '</div>'; // div roster_slideri-login
    }
}
预期产出

当我选中一辆车的复选框时,它应该只删除那辆车。如果我选中多辆车的复选框,我应该删除我选中的特定车

请帮帮我,我是个不折不扣的人。我在这里检查了很多问题,但没有找到我的答案。

在这行:

  echo '<input type="checkbox" name="checkbox" value="'.$carlink.'" class="checkbox-login">';
                               --------------
然后,
$\u POST[“checkbox”]
将是一个数组,您可以在其上使用
foreach
来获取所有选中的值

if( isset( $_POST["checkbox"] ) )
{
    foreach( $_POST["checkbox"] as $value )
    {
        /* $value contains $carlink */

        echo $value;    // For test purpose

        /* Sanitize and use it to identify and delete the corresponding row */
    }
}

(与其选择另一个名称,不如选择另一个名称。)

尝试在
中添加方括号,但仍然不起作用。而
foreach
如何工作?我明白你的意思,但不知道从哪里开始。我试着做了
if(isset($\u POST[“checkbox”]){foreach($\u POST[“checkbox”]as$value){$this->QueryResult(“从favoritecar中删除,其中email='$email'和FavoriteCalink='$carlink'));echo'alert(“汽车已被删除”);}
但仍不工作。同样的事情。我真的很感谢你的努力。你能根据我的密码帮我吗,我今天打哈欠了:(.在foreach中添加了回音,并选择了第二辆车,结果是
从favoritecar中删除,其中email='10〕info@email.com'AND favoritecarlink='1565924.html'
.1565924.html不是第二辆车,仍然是最后一辆车。所以它仍然是最后一辆车。也在mysql中手动运行它,并正确删除它,但最后一辆车。所以它仍然没有检测到右复选框。在
DELETE
查询中,使用
$value
$value
而不是
$value
是foreach中使用的变量。(
$carlink
是获取删除最后一个car链接的最后一个car链接)。这是我的错误,我已更新了我的答案。您可以尝试将删除相关代码移到顶部,刚好位于
$FavoriteCars=$this->QueryResult…
$email=$fgmembersite->UserEmail();
下面。
  echo '<input type="checkbox" name="checkbox[]" value="'.$carlink.'" class="checkbox-login">';
                               ----------------
if( isset( $_POST["checkbox"] ) )
{
    foreach( $_POST["checkbox"] as $value )
    {
        /* $value contains $carlink */

        echo $value;    // For test purpose

        /* Sanitize and use it to identify and delete the corresponding row */
    }
}