set_time_limit(0);こんな記述を冒頭に入れてあげましょう。
<span id="msg"></span>このchangeMsg()関数をPHPから呼び出し、<span>タグの中身を書き換えるわけです。
<script type="text/javascript">
function changeMsg(msg) {
document.getElementById("msg").innerHTML = msg;
}
</script>
ob_flush();バッファをフラッシュ(水をどっと流す)してあげる記述です。
flush();
$com = "表示したい内容"
echo '<script type="text/javascript">changeMsg("' . $com . '")</script>';
sleep(1); // 重い処理する場所こんな風にしちゃえばOKです。いかがでしょうか?思ったよりも簡単ですよね。具体例を挙げると、
$com = $i . "/" . $total; // $i: 処理中のデータ番号 $total: データ総数
echo '<script type="text/javascript">changeMsg("' . $com . '")</script>';
ob_flush();
flush();
$i=1;
foreach($url as $urls) {
getDataFromURL($url);
// ($urlのページからデータを取ってくる自分で定義した関数)
$com = $i . "/" . count($datas);
echo '<script type="text/javascript">changeMsg("' . $com . '")</script>';
ob_flush();
flush();
}
<form action="./hoge.php" method="POST" name="hoge">こんな風にタグが並んでいるときに、チェックボックスだけ選択してチェックをいれるためには、
<input type="checkbox" name="chk[]" value="1" />
<input type="text" name="text1" value="凸" />
<input type="checkbox" name="chk[]" value="2" />
<input type="text" name="text2" value="凹" />
<input type="checkbox" name="chk[]" value="3" />
</form>
-----------(preview)-----------
document.[form名].elements.lengthを使います。これはform内にある要素の数を数えてくれます。上の例でいえば5となります。では、早速すべてのチェックボックスをチェックするスクリプトを書いてみましょう。
<script type="text/javascript">いかがでしょうか。なお、checkboxの数を
function chkAllChkbox() {
for(i=0;i<document.hoge.elements.length;i++) {
if(document.hoge.elements[i].name == "chk[]") {
document.hoge.elements[i].checked = true;
}
}
}
</script>
<input type="button" onClick="chkAllChkbox()" value="check" />
-----------(preview)-----------
document.[form名].elements['checkboxの名前'].lengthで調べることもできます。覚えておくと便利?これを使ってradioボタンみたいなことを実現してみましょう。checkboxに更にIDを加えます。上とは違ってgetElementByIdを使ってcheckedを調べています。
<script type="text/javascript">getElementByIdとはその名の通りIDから要素を判別することができます。是非使ってみてくださいね。
function unchkOthers(num) {
for(i=1;i<=document.hoge2.elements['chk[]'].length;i++) {
document.getElementById('chk' + i).checked = false;
}
document.getElementById('chk' + num).checked = true;
}
</script>
<form action="./hoge.php" method="POST" name="hoge2">
<input type="checkbox" name="chk[]" value="1" id="chk1" onClick="unchkOthers(1)" />
<input type="checkbox" name="chk[]" value="2" id="chk2" onClick="unchkOthers(2)" />
<input type="checkbox" name="chk[]" value="3" id="chk3" onClick="unchkOthers(3)" />
</form>
-----------(preview)-----------
Introduction
凹みTipsはHTML、CSS、PHP、ActionScript3.0、JavaScriptからAjaxまで初心者の凹が試行錯誤繰り返しながら勉強していくサイトです。一緒に勉強していきましょう!
Categories
Recent Entries
Monthly Archives