Как вызвать функции PHP из функции JavaScript для доступа к базе данных - PullRequest
0 голосов
/ 29 октября 2010

Как вызвать функцию PHP, которая находится в файле, отличном от функции JavaScript?

У меня есть функция JavaScript, которая получает переменную из функции onclick. Переменная - это идентификатор, который я буду использовать для извлечения данных из базы данных MySQL. Затем переменная передается в функцию PHP, которая будет обращаться к базе данных, чтобы получить данные и вернуться к моей функции JavaScript для отображения, но, похоже, она не работает. Как я могу заставить его работать? Я использую CodeIgniter PHP.

Вот код.

Код JavaScript находится в другом файле с именем divUpdate.php.

<script type="text/javascript">
    function changeDiv(venueID){
        //retrieveData(venueID) is a PHP function from venue_model.php
        var dest = retrieveData(venueID);
        document.getElementById('venue_description').innerHTML=dest;
    }
</script>

--- Где функция onclick вызывает приведенный выше код JavaScript. ----

<li><a href="#self" class="menulink" class=&{ns4class};
                    onClick="changeDiv(\''.
                    $venue_details->VenueID.
                   '\')">;

--- Функция retrieveData вызывается из кода JavaScript выше. Это в модели (CodeIgniter). -

function retrieveData($venueID){
    $query = $this->db->query("SELECT * FROM venue WHERE VenueID = '$venueID' ");
    echo $query;
}

Ответы [ 2 ]

2 голосов
/ 29 октября 2010

Используйте Ajax, как уже предлагалось. Используя jQuery, вы легко это исправите.

Вам потребуется создать контроллер для доступа к вашим вызовам Ajax. Я достаточно просто создал контроллер Ajax так:

<?php
    class Ajax extends Controller
    {
        public function index()
        {
            $this->output->set_output("This is the AJAX Controller");
        }

        public function get_venue_description( $venueId )
        {
            $this->load->model('yourmodel');
            $data = $this->yourmodel->retrieveData($venueId);
            $this->output->set_output($data);
        }
    }
?>

Тогда ваш JavaScript-код после реализации jQuery должен выглядеть примерно так:

<script type="text/javascript">
    function changeDiv(venueID)
    {
        $.get('/ajax/get_venue_description/' + venueId, function(data) {
            $('#venue_description').html(data);
        });
    }
</script>

Я не проверял это, но я надеюсь, что вы поняли.

0 голосов
/ 29 октября 2010

Вы ищете "AJAX" - попробуйте поискать учебник в Google. Кроме того, вам будет намного проще выполнять запросы AJAX с помощью библиотеки JavaScript, например jQuery.

Вот функция jQuery AJAX: http://api.jquery.com/jQuery.ajax/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...