Как вызвать функцию PHP с Ajax? - PullRequest
1 голос
/ 07 июля 2011

У меня есть функция PHP, которая возвращает массив:

function lire( $id) {
            $ret = array() ; 
            $sSQL = "SELECT  *  FROM produit WHERE prod_code = '$id' LIMIT 1" ;
            $this->db->query($sSQL) ;
            $ret['cnt'] = $this->db->num_rows() ;
                        return $ret;
}

Как я могу вызвать эту функцию PHP в Ajax?

Ответы [ 3 ]

3 голосов
/ 07 июля 2011

Вы должны поместить этот блок кода в php-файл и вызвать его в функции ajax, например:

    var value = $.ajax({
    type: "POST",
    url: "some.php",
    data: "name="+customvariable,
    async: false
    }).responseText;

, также файл some.php будет иметь

      if(isset($_POST['name']))
       {
        $id = mysql_real_escape_string($_POST['name']);
        $ret = array() ; 
        $sSQL = "SELECT  *  FROM produit WHERE prod_code = '$id' LIMIT 1" ;
        $this->db->query($sSQL) ;
        $ret['cnt'] = $this->db->num_rows() ;
                    echo $ret;
      }

Вы получите возвращаемое значение в переменной value .

0 голосов
/ 07 июля 2011

это ответ на комментарий, который вы добавили ранее.Я не смог отформатировать его в комментарии.Извините.

 $(document).ready(function() {

      $("#idofinput").blur(function(){


    var value = $.ajax({
    type: "POST",
    url: "some.php",
    data: "name="+$("#idofinput").val(),
    async: false
    }).responseText;

    myval= parseInt(value);

    if(myval>0)
    {
        //your code goes here
    }
    else
    {
    //your code goes here
    }



    }); 

    });

Вы можете присоединить функцию к элементу ввода при загрузке документа.

заменить idofinput на идентификатор элемента ввода

0 голосов
/ 07 июля 2011

В AJAX вы делаете простой HTTP-запрос к какому-либо веб-ресурсу. Чтобы получить данные из вашей функции, вы можете предоставить простой скрипт php, который будет иметь параметр url (id) и вызывать вашу функцию. Чем ты

может использовать подходящую библиотеку Javascript (например, jQuery) для вызова страницы с этим параметром.

function lire( $id) {
        $ret = array() ; 
        $sSQL = "SELECT  *  FROM produit WHERE prod_code = '$id' LIMIT 1" ;
        $this->db->query($sSQL) ;
        $ret['cnt'] = $this->db->num_rows() ;
                    return $ret;
}

$result = lire($_GET['id']); // CONSIDER SOME ESCAPING OF USER INPUT FOR SECURITY!
echo $result; // OR USE SOME OTHER SORT OF SERIALIZATION (e.g. JSON)

Возможно, вам придется установить заголовки (MIME-тип результата).

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