Отображение данных MYSQL, отфильтрованных по значению поля ввода с использованием PHP-скрипта - PullRequest
0 голосов
/ 13 октября 2018

Я новичок здесь, поэтому любые предложения приветствуются.

У меня есть ситуация, когда я использую функцию фильтра javascript, чтобы выбрать значение для поля ввода.При отправке запускается скрипт php, который фильтрует по значению соответствующего поля ввода.По некоторым причинам это не работает, и, поскольку я новичок, я думаю, что это распространенная ошибка.Очевидно, что-то маленькое здесь не так, и это сводит меня с ума.Я хотел улучшить это и получить лучшее практическое решение здесь.

Найдите под соответствующим кодом:

HTML:

<div class="searchContainer">
    <div id="productDiv">
        <form autocomplete="off" onsubmit="search(this.value)">
            <div class="autocomplete">  
                <input id="myInput" type="text" placeholder="Search...">
            </div>
            <button type="submit">Go</button>
        </form>
    </div>
</div>

Javascript:

function search(str) {
        if (str == "") {
            document.getElementById("myInput").value = "";
            return;
        }
        if (window.XMLHttpRequest) {
            // code for IE7+, Firefox, Chrome, Opera, Safari
            xmlhttp = new XMLHttpRequest();
        } else { // code for IE6, IE5
            xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
        }
        xmlhttp.onreadystatechange = function() {
            if (this.readyState == 4 && this.status == 200) {
                document.getElementById("products").value = this.responseText;
            }
        }
        xmlhttp.open("GET", "filterMerchant.php?q=" + str, true);
        xmlhttp.send();
    }

PHP - (filterMerchant.php):

<?php
include('dbconnect.php');

$q = intval($_GET['q']);

mysqli_select_db($mysqli,"theDB");
$search="SELECT * FROM thetable WHERE ref = '".$q."'";
$result = mysqli_query($mysqli,$search);

while($row = mysqli_fetch_array($result)) {

echo "<a class=\"merchantOutput\">" . $row['merch'] . "</a>";
echo "<a class=\"priceOutput\"><strong>" . $row['cost'] . "</strong></a>";
echo "<img src=\"img.png\" style=\"height:42px;width:42px;\" 
onclick=\"showMerchant(this.value)\" value=\"TestProfile\" 
class=\"merchantLink\">";       
}

mysqli_close($mysqli);
?>

1 Ответ

0 голосов
/ 13 октября 2018

Вам необходимо запретить отправку формы по умолчанию.Вы можете сделать это, вернув false из кода onsubmit.

<form autocomplete="off" onsubmit="search(this.value);return false">
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...