提交后在选择框中显示多个项目

时间:2018-01-29 14:46:58

标签: php

在提交后的选择框中获取所选值。 我用:

$product = mysqli_real_escape_string($conn, $_GET['product']);
$brand = mysqli_real_escape_string($conn, $_GET['brand']);
$conn = new mysqli($servername, $username, $password, $dbase);

if(empty($_GET['product']||$_GET['brand'])){ //fields contain no value
    die('please input a search!'); // kill the database connection
}

if ($conn->connect_error) {
echo "Connection failed: ". $conn->connect_error;
}else{
$sql = "SELECT * FROM products WHERE product = $product AND brand = $brand";
$result = $conn->query($sql);
//echo $sql;
}

//THIS IS WHERE IT SAYS THE ERROR OCCURS, "if($result->num_rows>0" 
//specifically
if ($result->num_rows > 0){
    //output each row
    while($row = $result->fetch_assoc()){
        echo "Product: " . $row["product"]. " Brand: " . $row["brand"]. " 
Age: " . $row["age"]. " Cost: " . $row["cost"]. " Specification: " . 
$row["specification"]. " Image: " . $row["image"]. "<br>";
    }
}else{
    echo "Sorry, we could not find any products relating to your search.";
}

mysqli_close($conn);

在PHP中使用数组时如何获取多个项目?

<option value="<?=$row["status"]?>" <?=($row["status"]==$status) ? 'selected' : ''?> >

2 个答案:

答案 0 :(得分:1)

尝试以下方法:

  1. 在循环之前添加:

    $selectedItems = [];
    if(isset($_POST['status'])) {
      $selectedItems = $_POST['status'];
    }
    
  2. 循环内的变化:

    <option value="<?=$row["status"]?>" <?=(in_array($row["status"], $_POST['status'])) ? 'selected' : ''?> >
      <?=$row["status_omschr"]?>
    </option>
    

答案 1 :(得分:0)

您可以在下面的条件下使用in_array()功能来执行此操作。

 <option value="<?=$row["status"]?>" <?php if(isset($_POST['status']) and !empty($_POST['status'])){ ?> <?=(in_array($row["status"], $_POST['status'])) ? 'selected' : ''?> <?php }?>  >
  <?=$row["status_omschr"]?>
</option>
相关问题