PHP MySQL显示数据库基于选项选择和onclick


PHP MySQL display database based on option chosen and onclick

我需要选择一个选项(图书类别),然后在数据库中搜索该类别的所有图书,并将数据库显示为一个表。

我可以使用HTML, JavaScript, PHP和MySQL在这个代码。

这是HTML代码:
<p>
            <select name="genre" size="1">
                <option value='0' id='AA'>Art & Architecture</option>
                <option value='1' id='BG'>Biography</option>
                <option value='2' id='CH'>Children</option>
                <option value='3' id='DR'>Drama</option>
                <option value='4' id='ER'>Erotica</option>
                <option value='5' id='HS'>History</option>
                <option value='6' id='ML'>Military</option>
                <option value='7' id='MU'>Music</option>
                <option value='8' id='NE'>Non-English</option>
                <option value='9' id='NV'>Novels</option>
                <option value='10' id='OC'>Occult</option>
                <option value='11' id='PS'>Philosophy</option>
                <option value='12' id='PG'>Photography</option>
                <option value='13' id='PT'>Poetry</option>
                <option value='14' id='PE'>Politics & Economics</option>
                <option value='15' id='RG'>Religion</option>
                <option value='16' id='SE'>Science & Engineering</option>
                <option value='17' id='SP'>Sport</option>
                <option value='18' id='TE'>Travel & Exploration</option>
            </select>
        <input type="submit" value="Search" onClick="">
    </p> 
这是PHP和MySQL的代码:
<?php 
        $mysqli = new mysqli('localhost','root','','bookstore');
        if(mysqli_connect_errno())
        {
            $problem = mysqli_connect_error();
            echo "Error opening database";
            die ($problem);
        }
        $genre = getElementByName('genre');
        $query = "SELECT category(*) FROM book_list WHERE category=$genre"; 
        echo "<h2>These are the books available</h2>";
        // Execute Query
        $result = $mysqli->query($query);
        // echo "<table border="1">";
            while($row = $result->fetch_array(mysql_query))
            {
                $Title = $row["Title"];
                $Author = $row["Author"];
                $Price = $row["Price ($)"];
                echo "<tr><td>$Title</td><td>$Author</td><td>$Price</td></tr>";
                echo "</table>";
            }
        $result->close();
    ?>

你知道哪里出了问题吗?

注:PHP新手,请使用简单的语言和解释。谢谢你!

你好像把php和javascript (jquery)混在一起了。不过,对于你的问题,我得出了以下结论…

创建test.php文件

<script   src="https://code.jquery.com/jquery-3.1.0.min.js"   integrity="sha256-cCueBR6CsyA4/9szpPfrX3s49M9vUU5BgtiJj06wt/s="   crossorigin="anonymous"></script>
<script>
$(document).ready(function(){
    $("#genre").on('change', function postinput(){
        var genre = $(this).val(); // this.value
        $.ajax({
            url: 'test2.php',
            data: { genre: genre },
            type: 'post'
        }).done(function(responseData) {
            console.log('Done: ', responseData);
            $("#your_html_response").html(responseData);
        }).fail(function() {
            console.log('Failed');
        });
    });
});
</script>
<p>
            <select name="genre" id="genre" size="1">
                <option value='0' id='AA'>Art & Architecture</option>
                <option value='1' id='BG'>Biography</option>
                <option value='2' id='CH'>Children</option>
                <option value='3' id='DR'>Drama</option>
                <option value='4' id='ER'>Erotica</option>
                <option value='5' id='HS'>History</option>
                <option value='6' id='ML'>Military</option>
                <option value='7' id='MU'>Music</option>
                <option value='8' id='NE'>Non-English</option>
                <option value='9' id='NV'>Novels</option>
                <option value='10' id='OC'>Occult</option>
                <option value='11' id='PS'>Philosophy</option>
                <option value='12' id='PG'>Photography</option>
                <option value='13' id='PT'>Poetry</option>
                <option value='14' id='PE'>Politics & Economics</option>
                <option value='15' id='RG'>Religion</option>
                <option value='16' id='SE'>Science & Engineering</option>
                <option value='17' id='SP'>Sport</option>
                <option value='18' id='TE'>Travel & Exploration</option>
            </select>
    </p>
    <div id="your_html_response">
    </div>

在上面,我已经包含了一个jquery库,并使用下拉菜单的onchange函数发送一个值到test2.php文件。

你还可以看到空白的<div id="your_html_response"></div>,它将添加来自test2.php文件

的响应数据

也删除了<input type="submit" value="Search" onClick="">,因为它不是必需的,因为你没有在你的代码中创建一个表单。

创建test2.php文件

<?php

        $mysqli = new mysqli('localhost','root','','bookstore');
        if(mysqli_connect_errno())
        {
            $problem = mysqli_connect_error();
            echo "Error opening database";
            die ($problem);
        }
        $genre = $_POST['genre'];
        $query = "SELECT category(*) FROM book_list WHERE category=$genre";
        $html_response = "<h2>These are the books available</h2>";
        // Execute Query
        $result = $mysqli->query($query);
        $html_response .= "<table border='1'>";
            while($row = $result->fetch_array(mysql_query))
            {
                $Title = $row["Title"];
                $Author = $row["Author"];
                $Price = $row["Price ($)"];
                $html_response.= "<tr><td>$Title</td><td>$Author</td><td>$Price</td></tr>";
            }
            $html_response .= "</table>";

        $result->close();
        echo $html_response;
    ?>

在上面,我已经从下拉菜单中获得了张贴的值,并连接了一个数据库,并使用mysqli查询返回记录(如果有的话)。我在这里返回了HTML响应…

test.php中可以找到以下代码
done(function(responseData) {
            console.log('Done: ', responseData);
            $("#your_html_response").html(responseData);
    }

其中我使用了$("#your_html_response").html(responseData);,这是从我们从test2.php文件中获得的响应中添加数据