我有一个使用外部 js 文件的 php webform
外部文件运行事件,例如:onload、onchange 和 onSubmit
在我的 php 应用程序中,我使用以下方法从 db 收集数据:
<?php
$reqFlds = array();
$results = mysql_query("select id, display_name from field where account_id = $acct_id2 and required_flag = 1");
while($RequireResult = mysql_fetch_assoc($results))
{
$reqFlds[] = $RequireResult;
}
foreach($reqFlds as &$reqFld)
{
$reqFld = "'".$reqFld["id"] . "||" . $reqFld["display_name"]."'";
}
?>
然后我使用 json 收集数据并将其转储到 php 应用程序中的变量 js 脚本中
<script language="javascript">
var holdReqFlds = <?php echo json_encode($reqFlds); ?>;
</script>
var/array 结果显示如下 View from page source
<script language="javascript">
var holdReqFlds = ["'15||Project Requested By'","'18||Project Title'","'20||Banner Details'","'202||Flyer Details'","'2134||If Gl Code Not above'","'5862||Quantity'"];
</script>
诚然,我只是在学习 json,所以这是我想不通的:如何将此值提供给我的外部 js 文件中的函数?
下面是供参考的 javascript 函数 - 这将在 php 应用程序中单击提交按钮时运行。简而言之 - 我将所有标记为所需的字段传递给 holdReqFlds 变量。然后该 var 将被传递给下面的 chkReq() 函数并确定字段是否在当前正在显示的字段集中
我需要将 holdReqFlds var 传递给外部 javascript 文件中的 chkReq() 函数: 如何?
* ###################################
* PAGE ONSUBMIT FUNCTION
* ###################################
function job_onsubmit(action)
{
function isVisible(field) {
if (field.offsetWidth === 0 || field.offsetHeight === 0) return false;
}
function isBlank(field) {
if ((field.type == "text" || field.type == "textarea") && field.value.length <= 0) return true;
if (!(field.checked || field.selected || field.selectedIndex > -1)) return true;
return false;
}
function chkReq(fieldList) {
var field = null;
var blankFields = [];
for (var i = 0; i < fieldList.length; i++) {
listItem = fieldList[i].split;
fieldId = field[0];
label = field[1];
field = document.getElementById(fieldList[i].split("||")[0]);
if (isVisible(field) && isBlank(field)) {
blankFields[blankFields.length] = fieldList[i].split[1];
}
}
if (blankFields.lentgh > 0) {
displayError(blankFields);
return false;
} else {
return true;
}
}
function displayError(blankFields) {
var msg = "Input required:\n\n";
for (var i = 0; i < blankFields.length; i++) {
msg += blankFields[i] + "\n";
}
}
}