我无法重新初始化某些代码。
我有一个插件的功能,我需要重新初始化点击。上个月我开始学习JS和PHP,所以我仍然对操作我没写过的代码感到不舒服。
这是我需要重新加载的代码,它在PHP文件中找到:
/** $return FFGeneralSettings */
public function getGeneralSettings(){
return $this->generalSettings;
}
public function register_shortcodes()
{
add_shortcode('ff', array($this, 'renderShortCode'));
}
public function renderShortCode($attr, $text=null) {
if ($this->prepareProcess()) {
$stream = $this->generalSettings->getStreamById($attr['id']);
if (isset($stream)) {
$settings = new FFStreamSettings($stream);
if ($settings->isPossibleToShow()){
/*ob_start();
include(AS_PLUGIN_DIR . 'views/public.php');
$file_content = ob_get_clean();
echo $file_content;*/
ob_start();
include(AS_PLUGIN_DIR . 'views/public.php');
$output = ob_get_contents();
ob_get_clean();
return $output;
}
}
}
}
我想我会使用Javascript重新初始化上面代码中的操作?我是否在正确的轨道上使用了我在下面制作的骨架?
$(document).ready(function(){
$('a').on('click',function(){
//does the magic happen in here?
});
});
感谢您的任何建议,到目前为止,我已经从你们那里学到了很多东西! 哦,我也很好,如果答案是在jQuery中。
答案 0 :(得分:2)
“我有一个插件的功能,我需要重新初始化点击”
一切都取决于你希望这个功能做什么。您是否希望它生成一些输出以显示在您的页面上?你想要它只运行服务器端脚本吗?两者都要求你调用一个运行php代码的php页面,这可能是ajax调用的形式,但你对结果的处理会因你的目标而异。
要使用jquery执行ajax调用,请执行以下操作:
$(document).ready(function(){
$('a').on('click',function(){
// magic happens here!
$.ajax({
url: "yourfile.php",
method: "get",
success: function(result) {
// do something with your result here
console.log(result);
},
});
});
});
看起来你的代码会返回一些东西 - 所以上面的代码应该在success = function (result)
部分做一些事情,这可能是将输出结果放到某个元素中。
答案 1 :(得分:0)
如果您尝试从Javascript重新加载/重新运行PHP函数,则需要创建一个API端点,您可以通过javascript对其进行http调用,或者执行旧式页面刷新。如果您对http请求和响应的基础知识有所了解,那就没有意义了。