将 PHP/MySql 结果放入 Javascript
Putting PHP/MySql Results into Javascript
我想我越来越接近理解如何将我的网站转向更 PHP OOP 的方法。
我的每个用户都有不同的页面,因为他们对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;
};
});
在我看来,(其他人可能会不同意)你提出的是一个完全可行的选择。如果你不想在javascript中包含这么多php,你可以使用php json_encode()
函数创建一个初始javascript对象,并使用它的属性而不是php回显。例如,像这样的东西:
var gridOpts = <?php echo json_encode($MySQL_results);?>;
mygrid.setColTypes(gridOpts.colTypes);
我看不懂那段代码,太乱了...
但对于一般用途:
<script type="text/javascript">
var js_variable = <?php echo json_encode($php_variable); ?>;
</script>
此方法允许您将任何类型的 PHP 变量(资源除外)传递给 JS。
相关文章:
- 奇怪的Javascript结果
- 如何将JavaScript结果显示为段落
- 如何将JavaScript结果输出到iframe中
- 在javascript结果之前有很多空格
- 在 jsf/primefaces 组件中评估 javascript 结果
- 将 JavaScript 结果打印到两个 DIV 而不是输入中
- PHP curl - 可以检索 JavaScript 结果
- JavaScript-结果显示在IE,但不是Chrome或FF
- 在PHP/HTML源代码中回显JavaScript结果
- 如何存储稍后将显示的ajax调用的本地javascript结果
- 将PHP var设置为javascript结果
- 谷歌地图API V3和Javascript结果和标记
- 如何改变一个javascript结果从选择框到文本区域
- 不能输出一个简单的javascript结果
- 用html显示JavaScript结果
- 在python列表中获取javascript结果
- 将Javascript结果传递给php
- 在三个javascript结果的前两个中添加图像
- 我的HTML文件如何将JavaScript结果传递给调用它的Python脚本?
- 从控制事件中获取html格式的javascript结果