私はドロップダウンリストを持つWebフォームと、ドロップダウンリストから選択したオプションをimputとして選択する非常に単純なスクリプトの結果を入力する必要があるフィールドを持っています。 (Webサーバーはapache2とbashを使用し、ユーザー側では少しのjsしか使用しません)残念ながら私はマシンに他のものをインストールすることはできません)bashスクリプトからテキストフィールドに値を設定します
ドロップダウンメニューは自動的に正しく入力されます。 別のbashスクリプトとして実行すると、bash関数は必要なものを返します。
すべてのHTML部分がウェブページに挿入され、正しく表示されます。
問題は、ドロップダウンメニュー(javascript関数によって処理された)の値をbashスクリプト関数に渡すことができないためです。
アイデア?
STUFF.txt:
卵
ミルク
小麦粉
源として使用する2つのテキストファイル、ドロップダウンメニューに1つあります入力するテキストフィールドの別名:
QUANTITY.txt:
卵12unit
ミルク6Liters
小麦粉2キロ
ドロップダウン:
if [[ "$User" == "$Authorized" ]];then
echo "<td height=\"30\">$C_STUFF:</td><td colspan=\"3\" align=\"left\" cellpadding=\"0\"><select id=\"STUFF\" name=\"STUFF\" onChange=\"JS_stuff(this.value);\">"
STUFF=/apache2/cgi-bin/STUFF.txt
while IFS='' read -r line || [[ -n "$line" ]]; do
echo "<option id=\"$line\" name=\"STUFF\" value=\"$line\">$line</option>"
done < "$STUFF"
echo "</select>"
echo "</td><td> </td>"
fi
テキスト金融商品取引法D:
echo "<td></td>
<td>Quantity:</td>
<td colspan=\"3\"><text id=\"quantity\" size=\"15\" type=\"quantity\" name=\"quantity\" value=\"$STUFF\" ></text></td></tr>
のJavascript機能:
/****STUFF for the text field**********/
function JS_stuff(sel)
{
var xhttp;
if (str.length == 0) {
document.getElementById("quantity").innerHTML = "";
return;
}
xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
document.getElementById("quantity").innerHTML = this.responseText;
}
};
xhttp.open("GET", "getquantity.sh?"+str, true);
xhttp.send();
}
bashスクリプト&機能:
SCRIPT:functions.shで
#!/bin/bash
source ./functions.sh
getquantity $QUERY_STRING
FUNCTION:
get_stuff_fromlist() {
STUFF="$QUERY_STRING"
QUANTITY=/apache2/cgi-bin/QUANTITY.txt
while IFS= read -r line; do
if [[ $line == $QUERY_STRING* ]] ; then
printline="yes"
fi
if [[ $printline == "yes" ]] ; then
QUANTITY= echo "$line" | awk '{print $2}'
fi
if [[ $line == $QUERY_STRING* ]] ; then
printline="no"
echo "$STUFF"
fi
done < "$QUANTITY"
}
'[[[' –
]の後にスペースがありません。ありがとう、私はそれをformatingときに入力ミス。 – Broadcha