【问题标题】:Error: Call to undefined function on $.load()错误:调用 $.load() 上的未定义函数
【发布时间】:2022-01-19 12:24:09
【问题描述】:

在页面中,使用函数的外部文件(functions.php)被加载到标题中。在 $(document).ready() 上执行了一个函数,该函数在一段时间后使用 $.load() 重新加载 div 的内容:

$('#area').load('area.php');

在 area.php 中使用了包含在标头中的库的 php 函数,但是当执行“重新加载”时,响应是:

致命错误:调用未定义函数...

我试过了:

  • 其他替代但类似的解决方案
  • 在 area.php 中包含所用函数的库 (include_once('functions.php');

我无法解决问题。

你能告诉我为什么这个错误会返回给我吗?好像没有加载包含所使用函数的文件,而是包含在标题中?

【问题讨论】:

  • 这是一个 javascript (jQuery) 函数调用。与 PHP 代码无关。页面代码中是否包含了 jQuery 库
  • 你能把include改成require吗?如果文件未能包含在内,那应该会引发致命错误。可能包含路径失败
  • 第一次加载页面时,一切都正确完成,即使是 area.php。我在area.php中添加require ('includes/required.php') ,响应为:Fatal error: require(): Failed opening required 'includes/required.php' (include_path='.:') in...。 (includes/required.php 包含页面上使用的所有文件)

标签: php jquery


【解决方案1】:

我猜你是否正在尝试刷新 html 页面的一部分。我假设因为在你的问题中你有那部分(一段时间后重新加载 div 的内容)。 我想您需要执行以下操作。

例如,您的 jQuery 或 JavaScript 看起来像

// Define AJAX function.
ajaxReloadDiv = function () { 
   // The body of your AJAX function.
   // Here you can call php method etc.
}

// Call the function first time.
ajaxReloadDiv();

// Then call it every 20 second.
setInterval(ajaxReloadDiv, 20000);

或者您可以执行以下操作

// Set interval 10 second.
setInterval("reloadDiv();", 10000);

function reloadDiv() {
  $('#my-div').load('area.php #container');
}

当这个方法执行时,它检索area.php的内容,然后jQuery解析返回的文档以找到ID为container的元素。此元素及其内容被插入到 ID 为 result 的元素中,而检索到的文档的其余部分将被丢弃。

也检查一下https://api.jquery.com/load/

希望对您有同样的帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-02-10
    • 2015-07-02
    • 2017-01-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多