我正在创建一个CMS,它使用MVC-结构来创建/修改/删除网站的页面。我有很多存储数据的对象。例如$sitemodel,它具有:
$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;
}最后是页面模型中的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中
发布于 2015-09-22 10:13:33
您需要从页面创建一个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 & SQL方法中使用的变量。$sitemodel->ID。
发布于 2015-09-22 10:18:15
@Abayob我不太确定你想做什么,但是:
如何将数据和方法从对象中获取到create_page.php中?
您可以传递数据,但不能将方法传递给php,反之亦然。将数据从php传递到js的最佳方法是使用json: php -> http://php.net/manual/en/function.json-encode.php。
在这里查看一个关于它如何工作的示例:https://jonsuh.com/blog/jquery-ajax-call-to-php-script-with-json-return/
https://stackoverflow.com/questions/32713798
复制相似问题