【问题标题】:How can i compare an array with POST data in PHP?如何将数组与 PHP 中的 POST 数据进行比较?
【发布时间】:2015-01-25 02:52:32
【问题描述】:

好的,所以我只使用 HTML 和 PHP 编写表单,所以我已经做的是向数组添加数据,我正在使用 post 方法发送信息,我可以从数组中删除数据也将数组内容打印到表格中,但我找不到将我在输入中写入的信息与数组内容进行比较并将结果打印到表格中的方法。

这是我在文件开头的 PHP 代码:

<?PHP

session_start();

$marca = $_POST['marca'];
$mod = $_POST['modelo'];
$color = $_POST['color'];

if(empty($_SESSION['auto'][$marca])){
    $_SESSION['auto'][$marca] = array(
        'marca' => $marca,
        'modelo' => $mod,
        'color' => $color                   
    );
}   

  if(!is_null(@$_GET['borrar'])){
     unset($_SESSION['auto'][$_GET['borrar']]);
      header('Location:formTransportes.php');
}?>

然后是 HTML 内容,我在这里打印数组:

<form action="formTransportes.php" method="post">
        <label>Buscar </label><br>
        <input type="text" name="buscar"><br>  //INPUT OF WHAT IM LOOKING FOR 
        <input type="submit" value="Buscar">
    </form><br> 
    <div id="datos">
        <table>
            <thead>
                <tr>Marca</tr>                  
                <tr>Modelo</tr>                 
                <tr>Color</tr>
                <tr>Acciones</tr>                   
            </thead>    
            <tbody>

                    <?PHP
                    if(!empty($_POST['buscar'])){
                    $clave=$_POST['buscar'];
                    //echo $clave;     ////HERE IS WHERE IT SHOULD BE THE INFO THAT IM LOOKING FOR
                        foreach($_SESSION['auto'] as $i=>$x){


                        }
                    }
                    else{   ///PRINT ALL ARRAY CONTENT

                        foreach($_SESSION['auto'] as $i=>$x){
                            echo"<tr>
                            <td>".$x['marca']."</td>".
                            "<td>".$x['modelo']."</td>".
                            "<td>".$x['color']."</td>".
                            "<td><a href='?borrar=".$i."'>Eliminar</a></td>
                            </tr>";
                        }           

                    }
                    ?>


            </tbody>
        </table>

【问题讨论】:

  • 您已经这样做了,只需使用用户输入并将其用作会话数组的索引(如果存在)。 buscar 到底是什么意思?
  • @Fred-ii- 哦,对了,这就是这个问题的背景,search 哈哈:我想我需要一杯咖啡
  • @Ghost 享受。另一方面,如果有的话,我会是热牛奶。晚上这个时候不喝咖啡 ;-) 反正不在这里哈哈!
  • @Fred-ii- 早上在这里,所以我需要一个,保持我的智慧。无论如何,如果你想在每批保存的数组中搜索每个元素,你也可以使用array_search,如果没有,只需使用isset作为索引。

标签: php arrays post compare associative


【解决方案1】:

感谢你们的帮助,我找到了一种使用“strcmp”功能的方法,我想做的搜索部分是这样的:

if(!empty($_POST['buscar'])){

                        foreach($_SESSION['auto'] as $i=>$x){

                            if(strcmp($_POST['buscar'],$x ['marca'])==0||strcmp($_POST['buscar'],$x ['modelo'])==0||strcmp($_POST['buscar'],$x['color'])==0){
                                echo"<tr>
                                    <td>".$x['marca']."</td>".
                                    "<td>".$x['modelo']."</td>".
                                    "<td>".$x['color']."</td>".
                                    "<td><a href='?borrar=".$i."'>Eliminar</a></td>
                                    <a href='?borrar=".$i."'>Editar</a></td>
                                </tr>";
                            }   
                        }
                    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-22
    • 1970-01-01
    • 2016-12-24
    相关资源
    最近更新 更多