外部のjsファイルを使用するphpウェブフォームがあります
その外部ファイルは、onload、onchange、onSubmitなどのイベントを実行します
私のphpアプリケーションでは、これを使用してdbmyからデータを収集しました。
<?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の結果は、ページソースからのこのビューのように表示されます
<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変数に渡します。次に、その変数が以下の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";
}
}
}