Как вызвать функции PHP из функции JavaScript для доступа к базе данных

Как вы называете функцию 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/