我正在尝试将几个变量从php页面传递到java脚本中。但是只传递了第一个参数。
php页面调用脚本如下:
<?
$sdate = 0;
$edate = 2;
?>
<script type="text/javascript">
window.onload = function() {
datagrid = new DatabaseGrid('<? echo $sdate; ?>', '<? echo $edate; ?>');
};
</script><BR>
被调用的Java脚本是:
function DatabaseGrid(sdate, edate)
{
this.editableGrid = new EditableGrid("demo", {
enableSort: true,
tableLoaded: function() { datagrid.initializeGrid(this); },
modelChanged: function(rowIndex, columnIndex, oldValue, newValue, row) {
updateCellValue(this, rowIndex, columnIndex, oldValue, newValue, row);
}
});
this.fetchGrid(sdate);
this.fetchGrid(edate);
}
DatabaseGrid.prototype.fetchGrid = function(sdate, edate) {
// call a PHP script to get the data
alert("loaddata_dailyotp.php?o=" + sdate + "&e=" + edate + "");
this.editableGrid.loadXML("loaddata_dailyotp.php?o=" + sdate + "&e=" + edate + "");
};
DatabaseGrid.prototype.initializeGrid = function(grid) {
grid.renderGrid("tablecontent", "testgrid");
};
我添加了警告窗口,以显示所请求的确切内容。我期待着这个:
loaddata_dailyotp.php O = 0安培; E = 2
然而,我得到的是:
loaddata_dailyotp.php O = 0安培; E =未定义
为什么我的第二个参数没有通过?
答案 0 :(得分:4)
您没有将“edate”参数传递给"<% =_serviceMessageText %>"
来电。这就是它显示为“未定义”的原因。出于某种原因,你要拨打fetchGrid()
两次。
答案 1 :(得分:0)
像这样呼叫function DatabaseGrid(sdate, edate)
{
this.editableGrid = new EditableGrid("demo", {
enableSort: true,
tableLoaded: function() { datagrid.initializeGrid(this); },
modelChanged: function(rowIndex, columnIndex, oldValue, newValue, row) {
updateCellValue(this, rowIndex, columnIndex, oldValue, newValue, row);
}
});
this.fetchGrid(sdate, edate);
}
{{1}}
您错过了传递第二个参数。
答案 2 :(得分:0)
您可以通过以下方式执行此操作:
<script type="application/json">
var payload = <?= json_encode(array('sdate' => $sDate, 'edate' => $eDate)); ?>
</script>
然后调用你的脚本:
<script type="text/javascript">
window.onload = function() {
datagrid = new DatabaseGrid(payload.sdate, payload.edate);
};
</script>
答案 3 :(得分:0)
我是sharepoint开发人员。我在一个我的应用程序中面临同样的问题,我传递了两个值,只有第一个值到达另一端。甚至警报框显示两个值。
问题只是最后的值没有到达另一端,所以CRAZY SOLUTION要传递3个参数,第3个是测试参数,所以我的两个参数到达另一端,第三个参数无论如何都没有被自动忽略。
您的案例建议:
请检查三个参数是否仍然只有1个参数或
params;)