dポイントプレゼントキャンペーン実施中!

基本的なCSS及びPHPの知識が乏しい為、自己で解決出来ずに困っています。

ある任意のデータファイルをオープンして、Webページに表示させます。
--------------------------------------------------------------------------
<html>
<body>
<form action='test2.php' method='post'>
<?php
$logfile = './logdata.txt';

$fp = fopen($logfile, "r");

while($str = fgetcsv($fp)){
$data1[] = $str[0];
$data2[] = $str[1];
}

fclose($fp);

for ($i = 0; $i < sizeof($data1); $i++){
print "<input type='checkbox' name='col1[]' value='$data1[$i]'>";
print "<input type='text' name='col2[]' value='$data2[$i]' >";
print "<br>";
}

?>
<input type='submit' value='実行'>
</form>
</body>
</html>
--------------------------------------------------------------------------

表示した内容から、checkboxで10個のデータ選択させたいと考えています。
選択したデータを次ページの'test2.php' に配列(col1[]、col2[])にして
送信しているのですが、このスクリプト内で、checkboxで選択する数のチェックを行い、
選択した数が10個でなければ、javascriptでクライアント端末側にアラートを
ポップアップ表示させたい考えています。

-------------------------------------------
<script type='text/javascript'>
function checkbox_alert() {

alert("選択数は10個にして下さい");
}
</script>
-------------------------------------------

上記のようなfunctionをスクリプにを挿入すれば出来ると考えているのですが、
具体的な記載方法が分かりません。
どなたかお分かりになる方がいらっしゃいましたら、教えて頂けないでしょうか。

A 回答 (2件)

このような感じで如何でしょう


-------------------------------
<html><head>
<SCRIPT language="JavaScript">
<!--
function CBCheck() {
var count = 0;
for (var i=0;i<document.myForm.elements.length;i++){
if ((document.myForm.elements[i].name=="col1[]") && (document.myForm.elements[i].checked)) {
count++;
}
}
if (count!=10){
alert("選択数は10個にして下さい。"+count+"個が選択されています。");
return;
} else {
document.myForm.submit();
}
}
// -->
</SCRIPT>
</head><body>
<form name='myForm' action='test2.php' method='post'>
<?php
$logfile = './logdata.txt';
$fp = fopen($logfile, "r");
while($str = fgetcsv($fp)){
$data1[] = $str[0];
$data2[] = $str[1];
}
fclose($fp);

for ($i = 0; $i < sizeof($data1); $i++){
print "<input type='checkbox' name='col1[]' value='$data1[$i]'>";
print "<input type='text' name='col2[]' value='$data2[$i]' >";
print "<br>";
}
?>
<input type='button' value='実行' onClick="CBCheck()">
</form>
</body>
</html>
    • good
    • 0
この回答へのお礼

回答有難う御座います。
イメージしていた画面遷移をさせる事が出来ました。
とても勉強になりました。
本当に有難う御座いました。

お礼日時:2009/04/11 02:03

勘違いしていると思われる点


・phpはサーバサイド
 サーバ側で完全処理を行ってできあがったHTMLをユーザへ送り出す
・javascriptはクライアントサイド
 ユーザ処理をjavascriptで返す場合は判別もjavascript
 またはajax的にjavascriptで判別phpへ投げて受け取る必要有り


要するにcheckboxの選択云々の確認は
・javascript判別
 javascriptでformを走査しalert
・php判別
 一旦post(またはget)してphpとして「エラーページ」

が 妥当じゃないのかな。

この回答への補足

返答有難う御座います。

やはりこのPHPと同じ1枚のページに作成するのは不可能になりますでしょうか。ダラダラと長いスクリプトになってしまうかもしれない事は
覚悟しているのですが。
認識が乏しくて申し訳ありません。

補足日時:2009/04/10 21:34
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!