Получить запись MySQL с помощью Php и jQuery

#php #jquery #mysql #ajax

#php #jquery #mysql #ajax

Вопрос:

Вот мой сценарий:

У меня есть выпадающее меню с разными значениями. Когда выбран параметр ‘A’, я хочу, чтобы он использовал jQuery для вызова Php-скрипта. Этот Php-скрипт выполнит запрос к базе данных, который вернет идентификатор записи. Когда этот идентификатор записи возвращается в javascript, javascript перенаправит браузер на определенный URL-адрес на основе возвращенного идентификатора (т. е. /products/$ID)

Прямо сейчас у меня это так, что выпадающее меню запускает функцию javascript. У меня также есть Php-скрипт, который выполняет работу с базой данных. Я просто не уверен, что должно быть в функции javascript, или как заставить ее подключиться к Php-скрипту, и как я получаю возвращаемые данные (и как обращаться с возвращаемым типом — xml, html и т.д.)

Я использую библиотеку jQuery и Php 5.x.

Комментарии:

1. да, я знаю, что это шаги, но я не уверен в том, как работает реализация. Извините, я всегда забываю в пылу событий нажать «принять», когда нахожу свой ответ ! 🙂

Ответ №1:

Простым примером было бы принять форму, подобную

Example.php

 <form id="form" name="form">        
    <select name="dropdown" id="dropdown">
        <option value="A">A</option>
        <option value="B">B</option>
        <option value="C">C</option>
        <option value="D">D</option>
    </select>

    <input type="submit" id="submit" name="submit" value="Submit!" />
</form>
  

Затем свяжите ее с каким-нибудь jQuery, чтобы перехватить форму, и отправьте ее в файл PHP

JQuery.js

 $(document).ready(function(){
    $("#dropdown").change(function(event) {
        $.ajax({
            type: "POST",
            url: "query.php",
            data: $('#form').serialize(),
                datatype: "json",
            success: function(data){
                var ret = jQuery.parseJSON(data);
                    // Redirect to ret.link
            }
    });
    event.preventDefault();
    });
});
  

Затем создайте PHP-файл для ее интерпретации

query.php

 $stmt = $sql->dbh->prepare("SELECT `Link` FROM `Links` WHERE `ID` = :id");

$stmt->bindValue(':id', $_POST['dropdown']);

$stmt->execute();

$link = $stmt->fetch()['Link'];

echo json_encode(array('link' => "{$link}"));

die();
  

Ответ №2:

 $("#menu-item").click(function() {

    jQuery.ajax({
        type: "POST",
        url: "yourScript.php",
        data: "data=foo",
        success: function(response){
            //redirect to id using response
            window.location.replace("http://yoursite.com/products/"   response);
        }
    });

});
  

Конечно, это нужно будет настроить с учетом вашей уникальной ситуации.

Комментарии:

1. но в каком формате ‘response’? и как бы я получил доступ к данным внутри него?

2. ответ — это любые данные, которые возвращаются из вашего php-скрипта. это может быть что угодно, от JSON до HTML и строки. Однако JSON обычно является лучшим способом отправки данных туда и обратно, поскольку jQuery обладает отличной функцией .parseJSON

3. спасибо за это, я почти на месте. все еще возникают некоторые проблемы с возвратом, но я не разберусь