Как вызвать метод контроллера php с помощью jquery? - PullRequest
2 голосов
/ 05 апреля 2010

Я занимаюсь разработкой веб-приложения и интегрирую в него jquery ... Теперь я ищу вызовы ajax с jquery для моей функции контроллера ....

jquery.ajax() было бы полезно, я так думаю ... Но как вызвать мой метод контроллера ....

$.ajax({
        type: "POST",
        url: "http://localhost/codeigniter_cup_myth_new/index.php/libraryController/loadbookdetails",
        data: "",
        contentType: "application/json; charset=utf-8",
        async: false,
        dataType: "json",
        success: function(jsonObj) {

function loadbookdetails()
{
    //Paging 
        $college=$_SESSION['college'];
        $this->load->library('pagination');
        $data['bookdetails'] = $this->librarymodel->selectbook($college);
        //$data['rackOptionData'] = $this->librarymodel->selectrack();
         if(empty($data['bookdetails']))
          {
             $data['comment'] = 'no record found!';
          }

        $this->load->view('bookdetials',$data);
}

Я получаю эти записи здесь, как использовать их с функцией jquery.ajax() и как конвертировать $data в json, использовать ее с jquery и выполнять итерации с таблицей ...

Ответы [ 4 ]

4 голосов
/ 05 апреля 2010

Вы не можете напрямую связать jQuery с функциями PHP, потому что они не работают одновременно: PHP выполняется на стороне сервера (и обычно генерирует HTML-страницу), jQuery запускается на стороне клиента.

Вы бы заставили jQuery сделать Ajax-вызов URL-адреса страницы PHP. Эта страница PHP будет желаемый контроллер и выполнять запрошенные действия.

Существует ли заранее определенный способ, который зависит от того, какую PHP Framework вы используете (если есть).

1 голос
/ 05 апреля 2010

Для PHP> = 5.2.0 вы можете использовать json_encode (). Ваш код будет выглядеть так:

$this->load->view('bookdetails', json_encode($data));

Хорошую коллекцию ссылок на CodeIgniter + AJAX можно найти здесь .

0 голосов
/ 05 апреля 2010

Ajax-запрос должен связываться с PHP-скриптом. Этот скрипт должен возвращать данные. Вы используете json в качестве формата ответа:

dataType: "json",

Так что для вашего примера json должен быть только скрипт выходной формы. И это не может быть чем-то большим, чем json.

Ваш скрипт serwer (представление bookdetials) будет выглядеть так:

  //Initialise data
  $bookdetails = ...
  // json encode data
  echo json_encode( $bookdetails );
  // make sure nothing else go to the output
  ???

??? - зависит от системы. Обычно вам придется блокировать разметку страницы здесь.

json - хороший ответ, но в большинстве случаев HTML достаточно ...

0 голосов
/ 05 апреля 2010

, если у вас уже есть view/bookdetials.php Тогда все, что вам нужно, это (вместо вашего кода JavaScript):

Добавьте div где-нибудь на странице, например так:

<div id="ajax-palaceholder"></div>

и затем добавьте этот код JavaScript:

<script type="text/javascript">
$(document).ready({
  $('#ajax-palaceholder').load('http://localhost/codeigniter_cup_myth_new/index.php/libraryController/loadbookdetails');
});
</script>

Это выполнит запрос ajax при загрузке страницы, а затем поместит загруженный контент в div#ajax-palaceholder

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