我想从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的基础知识。
答案 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'));
<强>更新强>
如果您发表更多问题,我会在此更新答案。