如何在数组中存储POST元素

问题描述 投票:1回答:1

这是针对“食谱个人网站”的,我被搜索功能所困扰。首先让我告诉您数据库如何:

[我想在这里创建一个页面,我可以在其中搜索包含1或2种特殊成分的食谱,以及我要搜索的类别。 Link for search page image

这是我目前完成的search.php((您可以在codeshare.io上看到它]]

我如何继续搜索仅包含选定内容的食谱成分?

对不起,我的英语和我对PHP的了解不多:)

<?php
    include("cnx.php");
    include("functions.php");
    // Query pour les catégories
    $rq_cat = "SELECT * FROM categories ORDER BY id_cat";
    $result_cat = $mysqli->query($rq_cat);
    if(isset($_POST["Recherche"]) AND $_POST["Recherche"] == "Go")
    {
        if($_POST["cat_recette"] == "") // Si aucune catégorie sélectionnée
        {
            echo "Aucune catégorie ";
            $rq_recettes = "SELECT * FROM recettes";
            $result_recettes = $mysqli->query($rq_recettes);
        }
        elseif($_POST["cat_recette"] == "Entrée") // Si catégorie Entrée sélectionnée
        {
            echo "Catégorie Entrée ";
        }
        elseif($_POST["cat_recette"] == "Plat") // Si catégorie Plat sélectionnée
        {
            echo "Catégorie Plat ";
            $rq_recettes = "SELECT * FROM recettes WHERE cat_recette='Plat'";
            $result_recettes = $mysqli->query($rq_recettes);
        }
        elseif($_POST["cat_recette"] == "Dessert") // Si catégorie Dessert sélectionnée
        {
            echo "Catégorie Dessert ";
            $rq_recettes = "SELECT * FROM recettes WHERE cat_recette='Dessert'";
            $result_recettes = $mysqli->query($rq_recettes);
        }
        elseif($_POST["cat_recette"] == "Soupe") // Si catégorie Soupe sélectionnée
        {
            echo "Catégorie Soupe ";
            $rq_recettes = "SELECT * FROM recettes WHERE cat_recette='Soupe'";
            $result_recettes = $mysqli->query($rq_recettes);
        }
        elseif($_POST["cat_recette"] == "Autre") // Si catégorie Autre sélectionnée
        {
            echo "Catégorie Autre ";
            $rq_recettes = "SELECT * FROM recettes WHERE cat_recette='Autre'";
            $result_recettes = $mysqli->query($rq_recettes);
        }
    }
?>

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <link href="https://fonts.googleapis.com/css?family=Quando&display=swap" rel="stylesheet">
    <link rel="stylesheet" href="css/style.css">
    <title>cooketal</title>
</head>
<body class="search">

    <header>
        <?php 
            include("nav.php");
        ?>
    </header>

    <div class="banner">
        <h2>Recherche</h2>
    </div>
<section class="all-recipes add left">
    <div class="frigo-ing col-3">
        <table>
            <div class="contenu">  
                <form action="" method="POST">

                <h1>Les ingrédients que je possède</h1>
                <?php for ($i=1; $i < 10 ; $i++) { ?>
                <table>
                    <th><span><?php echo $i ?></span></th>
                    <td>
                        <select name="ing<?php echo $i; ?>">
                            <option value="" selected>- - - -</option>                      
                            <?php 
                                $rq_ingredients = "SELECT * FROM ingredients ORDER BY nom_ingredient ASC";
                                $result_ingredients = $mysqli->query($rq_ingredients);
                                while($row_ingredients = $result_ingredients->fetch_object()){ ?>
                                <option value="<?php echo $row_ingredients->id_ingredient; ?>"><?php echo $row_ingredients->nom_ingredient; ?></option>
                            <?php } ?>
                        </select>
                    </td>
                </table>
                <?php } ?>

                    <h1>Une catégorie en particulier ?</h1>
                    <select id="cat-recette" name="cat_recette">
                        <option value="">- - - -</option>
                        <?php 
                        $rq_cat = "SELECT * FROM categories ORDER BY id_cat";
                        $result_cat = $mysqli->query($rq_cat);
                        while( $row_cat = $result_cat->fetch_object()){ ?>
                            <option value="<?php echo $row_cat->cat_recette; ?>" <?php if( isset( $_POST["cat_recette"]) AND $_POST["cat_recette"] == $row_cat->cat_recette){ echo "selected";} ?>><?php echo $row_cat->cat_recette; ?></option>
                        <?php } ?>
                    </select><br>

                    <input type="submit" name="Recherche" value="Go">

                </form>
            </div>
        </table>
    </div>

    <div class="frigo-ing col-3">
        <h1>Résultats</h1>
    </div>

</section>
php mysql recipe
1个回答
0
投票

如果建议您使用ajax并在html中进行select并在select's值更改后设置ajax调用。就像这样。选择:

<select name='select' class='ingredient'>
<option value="" selected>- - - -</option>                      
                            <?php 
                                $rq_ingredients = "SELECT * FROM ingredients ORDER BY nom_ingredient ASC";
                                $result_ingredients = $mysqli->query($rq_ingredients);
                                while($row_ingredients = $result_ingredients->fetch_object()){ ?>
                                <option value="<?php echo $row_ingredients->id_ingredient; ?>"><?php echo $row_ingredients->nom_ingredient; ?></option>
                            <?php } ?>
</select>

AJAX CALL:

$('.ingredient').change(function() {
    var selected = $('.ingredient').val();
    var data = "";
    $.ajax({
        type:"GET",
        url : "search.php?ingredient='+selected+'',
        data : "",
        async: false,
        success : function(response) {
            //Here you get recipe name in response as return .. I hope it work.
        },
        error: function() {
            alert('Error occured');
        }
    });

制作另一个名为search.php的页面在这里,您可以获得具有成分的配方

<?php
$id = $_GET["ingredient"];
$sql = "SELECT * FROM recettes WHERE cat_recette='$id'";
$result = $conn->query($statement);
if ($result->num_rows > 0) {
    // output data of each row
    while($row = $result->fetch_assoc()) {
        echo "".$row["nom_recette"]."";
    }  
}
?>
© www.soinside.com 2019 - 2024. All rights reserved.