我目前正在开发一个CMS,其中PHP和JavaScript (+ AJAX)之间有很多通信。我在整个流程中存储变量时遇到了困难。
例如:登录后可以选择要编辑的站点。当单击时,我将site_id存储在post变量中。之后,我重定向到pages-overview-page,在那里我使用这个site_id从数据库中读出所有的页面。
如果我添加一个页面,会发生以下情况:
1。$_POST['site_id']通过回显输入到javascript中:
echo "<script>var siteid =".$_POST['siteid'].";</script>"
2。我的JavaScript然后做一个AJAX调用:
$(".leftpanelinner").on('click','._add-page', function(event){
event.preventDefault();
$(".sortable").load("ajax_scripts/page-actions.php/add_page",{siteID: siteid, callFunction:'add_page' });
});
3。接下来,它会触发一个php脚本,该脚本将一个页面添加到网站,并对我的数据库进行查询,然后重新加载我的页面的主div:
public function new_page($iSite_id, $sTemplate, $sTitle, $sMeta, $sCSS, $sJS, $sFavicon, $aContent, $aMenu)
{
$oPagemodel = new page_model;
$iPage_id=$oPagemodel->insert_pagemodel($iSite_id, $sTemplate, $sTitle, $sMeta, $sCSS, $sJS, $sFavicon, $aContent, $aMenu);
return $iPage_id;
}
public function insert_pagemodel($iSite_id, $sTemplate, $sTitle, $sMeta, $sCSS, $sJS, $sFavicon, $aContent, $aMenu)
{
$this->set_pagemodel($sTemplate, $sTitle, $sMeta, $sCSS, $sJS, $sFavicon, $aContent, $aMenu);
$sSQL = "INSERT INTO `pages` (f_site_id, object) VALUES ('".$iSite_id.', '.serialize($this)."');";
if (mysql_query($sSQL)) {$this->iID = mysql_insert_id();} else {return false;}
return $this->iID;
}
是不是有一个更简单的方法来存储一个变量通过JavaScript/PHP/AJAX或以上是最好的方式?
您可以使用cookie。
<?php
$foo = 'lorem';
setcookie('the_foo',$foo,time() + (86400 * 7));
echo $_COOKIE['the_foo'];
?>
你也可以使用js获取和设置cookie