Как вы называете функцию 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; }
Используйте 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>
Я не тестировал его, но надеюсь, что у вас есть идея.
То, что вы ищете, это «AJAX» – попробуйте найти учебник по Google. Кроме того, вам будет намного проще выполнять запросы AJAX, используя библиотеку JavaScript, такую как jQuery.
Вот функция jQuery AJAX: http://api.jquery.com/jQuery.ajax/