Mysql
 sql >> Database >  >> RDS >> Mysql

Casella a discesa popolata da database MySQL e ricerca PHP

Ti consigliamo di utilizzare AJAX per chiamare uno script php dalla tua pagina e quindi utilizzare lo script php per interrogare il tuo database e riportare i risultati alla pagina.

Userò jQuery per questo esempio perché salva molte righe, dovresti verificarlo se non l'hai già fatto.

<html>
<head>
    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js"></script>
    <script type="text/javascript">
        function searchOccupation () {
            $.ajax({
                url: "searchOccupation.php?search=" + $('#searchTxt').attr('value'),
                success: function (data) {
                    alert(data);
                }
            });
        }
</script>
</head>
<body>
    <input type="text" id="searchTxt">
    <input type="button" value="Search" id="searchBtn" onclick="searchOccupation()">
</body>

Quindi il tuo script php (il cui nome dovrebbe corrispondere a quello nel campo "url" della chiamata ajax (in questo caso dovrebbe essere chiamato "searchOccupation.php") apparirà così:

<?php
    $searchTxt = $_GET['search'];
    mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
    $con = new mysqli('server', 'user', 'password', 'database');
    $sql = "SELECT * FROM tableName WHERE occupation = ?";
    $stmt = $con->prepare($sql);
    $stmt->bind_param('s', $searchTxt);
    $stmt->execute();
    $result = $stmt->get_result();
    while($row = $result->fetch_assoc()) {
        echo $row['firstName'];  //This sends data back to the page 
    } 
?>

La parte echo dello script php è ciò che invia i dati nella "success:function (data)" di javascript, quindi fai eco a qualsiasi campo tu voglia sulla pagina come sopra.

Modifica:ho capito leggermente male cosa intendevi, ajon's above è probabilmente ciò di cui hai bisogno.