Как вызвать определенную функцию в скрипте PHP через Ajax? - PullRequest
4 голосов
/ 16 июня 2011

Допустим, у меня есть файл functions.php, и он имеет две отдельные функции внутри:

Одна будет получать время

А другая получит дату

Как я, используя JQuery AJAX, получу данные из функции, которая извлекает дату.Как мне указать в коде JQuery, какую функцию на сервере выбрать.

Надеюсь, что это имеет смысл.Спасибо.

Ответы [ 5 ]

9 голосов
/ 16 июня 2011

Вы можете включить селектор в данные запроса ajax.Например:

$.ajax({
    url: "functions.php",
    data: "function=time", // or function=date if you want date
    ...
});

Затем в вашем PHP-коде простой оператор if проверит, какой из них вывести.

if(isset($_GET['function'])) {
    if($_GET['function'] == 'time') {
        // do time stuff
    } elseif($_GET['function'] == 'date') {
        // do date stuff
    }
}
5 голосов
/ 16 июня 2011
$(document).ready(function()
{
    $(".link").click(function()
    {
        var data['func'] = "time";
        var url  = functions.php
        $.get(url, data, function(result)
        {
            $("#feedback").html(result);
        });
    });
});

тогда ваш php файл будет,

if(isset($_GET['func']))
{
    if($_GET['func'] == "time")
    {
        showTime();
    }
    else
    {
        showDate();
    }
}

function showTime()
{
    //show time
}

function showDate()
{
    //show date
}

Код не проверен, но должен стать хорошей отправной точкой для вас.

5 голосов
/ 16 июня 2011

Вы не указываете в jQuery, какую функцию выполнять в PHP. Вы запрашиваете документ, возможно, со строкой запроса, и читаете результаты. Ваш скрипт functions.php отвечает за выполнение того, что запрашивается.

Таким образом, вы можете из jQuery запросить functions.php?fn=time в одном месте и functions.php?fn=date в другом. Затем в functions.php вы должны изучить строку запроса и выполнить соответствующую функцию для того, что было запрошено, возвращая результаты в jQuery.

1 голос
/ 16 июня 2011

Каков ваш ответ?Вы получаете ответ в XML или другом формате.Если ваш ответ XML, попробуйте эту опцию.

$.ajax({
        url:path,           
            data:{projectId:inpprojectId},
            dataType:"xml",
            success:function(data){
                $(data).find("CheckAmount").each(function(){
                    total = $(this).find("TotalAmount").text();
                    usdAmt = $(this).find("PettyCashAmount").text();    
                validateBudget(total,inp);                  
                });
            }       
    });
1 голос
/ 16 июня 2011

вы можете добавить параметр в URL:

пример:

function.php?g=1

сейчас, на стороне сервера проверьте параметр get:

if($_GET['g']==1)
{
    echo date();
}
else
{
    echo time();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...