我想我已经越来越接近理解如何将我的网站转向更多的PHP OOP方法。将PHP/MySql结果放入Javascript
我对每个用户都有不同的页面,因为他们对javascript生成的网格都有不同的需求。为了可维护性,我可以有一个页面,只需将php注入javascript中(如下所示)?标准做法是将php变量保存在MySQL中,并根据$ _SESSION ['user_id'];将它们吐出来。只是想知道我到目前为止是否在正确的道路上?
ORIGINAL GRID
var mygrid;
function doInitGrid(){
mygrid = new dhtmlXGridObject('gridbox');
var combo=mygrid.getCombo(4);
combo.put(2, 'Approve/Deny');
combo.put(1, 'Approve');
combo.put(0, 'Deny');
mygrid.setImagePath("../codebase/imgs/");
mygrid.setHeader("Submit Date, Manufacturer, Product Category, Progress, Approval Status",null,["text-align:center;","text-align:center;","text-align:center","text-align:center","text-align:center"]);
<!--mygrid.attachHeader("#text_filter,#text_filter,#text_filter");-->
mygrid.setInitWidthsP("10,16,44,18,12");
mygrid.setColAlign("center,left,left,center,center");
mygrid.enableAutoWidth(false);
mygrid.setColTypes("ro,ro,ro,button,coro");
mygrid.setColSorting("str,str,str,str,str,str");
mygrid.enableRowsHover(true,'grid_hover');
mygrid.setSkin("modern");
mygrid.init();
mygrid.setStyle("font-size:11px;","font-size:11px;","font-size:11px","font-size:11px","font-size:11px");
mygrid.loadXML("connector.php?hospid=<?php echo $hospid; ?>");
mygrid.setColumnIds("date,man_name,group,approval_progress, approval_status");
var dp = new dataProcessor ("connector.php?hospid=<?php echo $hospid; ?>");
dp.init(mygrid);
dhxWins = new dhtmlXWindows();
dhxWins.setImagePath("../codebase/imgs/");
mygrid.attachEvent("onRowSelect", function(id,ind){
if (ind == 0 || ind == 1 || ind == 2 || ind == 3){
dhxWins = new dhtmlXWindows();
var w1 = dhxWins.createWindow("w1", 60, 60,925, 575);
dhxWins.setSkin("dhx_web");
dhxWins.setImagePath("../codebase/imgs/");
w1.centerOnScreen();
w1.setText("");
w1.setModal(false);
theVar11 = (id);
w1.attachURL("pop_details.php?var1=" +theVar11);
return true;
};
});
MY IDEA FOR OOP GRID
var mygrid;
function doInitGrid(){
mygrid = new dhtmlXGridObject('gridbox');
var combo=mygrid.getCombo(4);
combo.put(2, 'Approve/Deny');
combo.put(1, 'Approve');
combo.put(0, 'Deny');
mygrid.setImagePath("../codebase/imgs/");
mygrid.setHeader(<?php $MySQL_results ?>);
<!--mygrid.attachHeader("#text_filter,#text_filter,#text_filter");-->
mygrid.setInitWidthsP("<?php $MySQL_results ?>");
mygrid.setColAlign("<?php $MySQL_results ?>");
mygrid.enableAutoWidth(false);
mygrid.setColTypes("<?php $MySQL_results ?>");
mygrid.setColSorting("<?php $MySQL_results ?>");
mygrid.enableRowsHover(true,'grid_hover');
mygrid.setSkin("modern");
mygrid.init();
mygrid.setStyle("<?php $MySQL_results ?>");
mygrid.loadXML("connector.php?hospid=<?php echo $hospid; ?>");
mygrid.setColumnIds("date,man_name,group,approval_progress, approval_status");
var dp = new dataProcessor ("connector.php?hospid=<?php echo $hospid; ?>");
dp.init(mygrid);
dhxWins = new dhtmlXWindows();
dhxWins.setImagePath("../codebase/imgs/");
mygrid.attachEvent("onRowSelect", function(id,ind){
if (ind == 0 || ind == 1 || ind == 2 || ind == 3){
dhxWins = new dhtmlXWindows();
var w1 = dhxWins.createWindow("w1", 60, 60,925, 575);
dhxWins.setSkin("dhx_web");
dhxWins.setImagePath("../codebase/imgs/");
w1.centerOnScreen();
w1.setText("");
w1.setModal(false);
theVar11 = (id);
w1.attachURL("pop_details.php?var1=" +theVar11);
return true;
};
});
空白是你的朋友。用一些空行分解代码墙;如果将它的特定部分分组在一起,它会使其更具可读性。 – Amber 2012-04-10 20:38:38
'<! - '评论出JS? Ouch ... – 2012-04-10 20:44:37
@Marc B谢谢指出。甚至不知道这是一个问题。我认为只要在我的编辑器上显示灰色,我很乐意去。我会看看什么更可以接受。试图尽可能快地学习。 – 2012-04-10 20:57:24