在JavaScript函数的函数文件中执行PHP函数

时间:2017-09-13 22:39:59

标签: javascript php ajax

我想从JavaScript函数调用PHP函数。

"为什么"你可能会问?

我在一个单独的文件custom_functions.php

中组织了一系列PHP函数

我正在慢慢学习如何使用JavaScript和jQuery构建,所以这就是我如何弥合差距。我对PHP更熟悉,所以我找到了通过那个窗口的方法。

我有一个在index.php中构造的元素列表。 从数据库中即时构建项目列表,并根据记录的ID创建id属性:

echo "<span id="content_" . $row{'unique_id'} . "\" onClick=\"displayDetails(" . $row{'unique_id'} . ")\">";

displayDetails(record_no)是外部JavaScript文件中的JavaScript函数。

现在我尝试了这个:

function displayDetails(record){
    data = {};
    //data = <?php retrieveContent(content_id); ?>
    $('.output').html("Testing Function - Section " + section_number);
}

但当然这不起作用,因为PHP是服务器端操作而JavaScript是client-side action

我的特殊问题与this one完全不同,让我感到难过。

我有一个PHP文件,在其中我希望AJAX从文件中的一系列函数调用特定函数。

目前尚不清楚如何使用AJAX调用文件中的函数。 我是否传递了这样的URL: &#34; custom_functions.php?functionname=displaydetails&record=<some number>&#34; ?

目前,我不想使用jQuery AJAX,我想纯粹从纯JavaScript / DOM角度理解XMLHttpRequest的基础知识。

1 个答案:

答案 0 :(得分:1)

是的,你必须像你提到的那样调用你的PHP文件。

当通过AJAX调用PHP脚本时,返回数据通常是JSON形成。 您在PHP中回显的内容将成为AJAX结果。

Javascript完成作业创建元素以显示和注入数据。

但是,您也可以将PHP脚本的结果HTML直接注入DOM。

示例1:将ajax响应数据直接注入DOM

的Javascript

axios.get('/example_api.php').then(resp => {
    // in this case, you gonna just put response data into innerHTML where you wanna show.
    someDomeElement.innerHTML = resp.data;
});

PHP(example_api.php)

echo "<p>hello world</p>";

https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest

示例2:当ajax响应数据为json

的Javascript

axios.get('/example_api.php').then(resp => {
    resp.data.forEach(function(item) {
       // In this case, you have to create DOM elements to show data 
       createElement(item); 
    });
});

PHP(example_api.php)

echo json_encode(array('data1', 'data2'));

<强>更新

如果您发表更多问题,我会在此更新答案。