У меня есть простая форма поиска, содержимое которой я хочу отправить в свой php-запрос как запрос POST
. Я использую AJAX для его отправки, и до сих пор все работает нормально, но по какой-то причине вместо отправки фактического значения поля ввода он всегда отправляет пустую строку.
Может кто-нибудь объяснить, что я здесь делаю неправильно?
мой HTML:
<form id="searchbox">
<input type="text" placeholder="author, title, keyword...">
<input type="submit" value="Search">
</form>
моих JS (console.log
линии есть для того, чтобы увидеть, что получение отправили, то есть для проверки того, что случилось с моим кодом):
$("#searchbox").submit(function(e) {
e.preventDefault();
console.log($("#searchbox").serialize());
$.post(
"db_queries/all_articles.php",
$("#searchword").serialize(),
function(data) {
console.log(JSON.parse(data));
} //end response function
); //end search article POST request
})
моего PHP:
try {
$hostname = "localhost";
$username = "root";
$password = "";
$db = new PDO("mysql:host=$hostname;dbname=topdecka_PTC",$username, $password);
if (!empty($_POST)) {
$query = $db->prepare('SELECT * FROM articles WHERE title = :title');
$query->execute(array(':title' => 'test1'));
$result = $query->fetchAll(PDO::FETCH_ASSOC);
echo json_encode($result);
die();
}
else {
$query = $db->prepare('SELECT * FROM articles');
$query->execute();
$result = $query->fetchAll(PDO::FETCH_ASSOC);
echo json_encode($result);
die();
}
} catch (PDOException $e) {
echo "Error!: " . $e->getMessage() . "<br/>";
die();
}
Beat me to it :) – AmmarCSE
теперь он отправляет имя = значение (в моем случае это поисковое слово = тест). Не могли бы вы предложить, как использовать значение в качестве переменной php? –
@ MihaŠušteršič, вы должны иметь доступ к нему в php, например $ _POST {'searchword'} – AmmarCSE