我正在创建一个使用MVC结构来创建/修改/删除网站页面的CMS。
我有很多用于存储数据的对象。
例如。 a $sitemodel
with:
$site-id
$page-template
要创建新页面,我在HTML中添加了一个按钮:
<ul class="nav nav-pills nav-stacked nav-bracket">
<li class="_add-page">
<a href="#user/sites/new">
<i class="fa fa-plus"></i>
<span> Voeg een pagina toe</span>
</a>
</li>
</ul>
我使用jQuery创建一个事件:
$(document).ready(function(){
$("#test-id").click(function(ev){
ev.preventDefault();
$(".site_creator").load("add_page.php");
});
});
add_page.php
调用以下函数:
$pagecontroller->new_page($sitemodel->ID);
这又调用了以下功能:
public function new_page($site-ID)
{
$pagemodel = new page_model;
$page_ID=$pagemodel->insert_pagemodel($site-ID);
return $page_ID;
}
最后来自pagemodel的SQL函数:
public function insert_pagemodel($site-ID)
{
$sSQL = "INSERT INTO `pages` (object) VALUES (".$site-ID.");
if (mysql_query($sSQL)) {$this->ID = mysql_insert_id();} else {return false;}
return $this->ID;
}
我想要了解的是:如何使用$page-controller
中的$site-controller
和add_page.php
中的方法?
从我的研究中我发现了两个选择:
add_page.php
”,{})我正在尝试使用选项2,但我不知道如何将我的数据从PHP导入JavaScript? 是否有可能将类的方法添加到ajax调用中?
我试图在这里看到整个画面,但它看起来像我错过了什么?
如何将我的对象中的数据和方法导入create_page.php
?
答案 0 :(得分:1)
您需要从页面创建一个AJAX调用,该调用的目标是服务器上的PHP文件: -
$(document).ready(function(){
$("#test-id").click(function(ev){
ev.preventDefault();
$.ajax({
method: "POST",
url: "add_page.php/new_page",
data: { // any data you wish to pass to the function }
})
.done(function( data ) {
// You code for when the function has completed
});
});
});
这应该让你入门 - 但是,你需要弄清楚如何发送你需要在PHP和PHP中使用的变量。 SQL方法即。 $sitemodel->ID
。
答案 1 :(得分:0)
@Abayob我不太确定你想做什么,但是:
如何从我的对象中获取数据和方法 create_page.php?
您可以传递数据,但不能将方法传递给php,反之亦然。 将数据从php传递到js的最佳方法是使用json: php - &gt; http://php.net/manual/en/function.json-encode.php
点击此处查看有关其工作原理的示例: https://jonsuh.com/blog/jquery-ajax-call-to-php-script-with-json-return/