2015-06-10 3 views
0

У меня есть простая форма поиска, содержимое которой я хочу отправить в свой 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(); 
} 

ответ

1

Ваши входные теги должны иметь атрибут name для сериализации.

+1

Beat me to it :) – AmmarCSE

+0

теперь он отправляет имя = значение (в моем случае это поисковое слово = тест). Не могли бы вы предложить, как использовать значение в качестве переменной php? –

+0

@ MihaŠušteršič, вы должны иметь доступ к нему в php, например $ _POST {'searchword'} – AmmarCSE

Смежные вопросы