JavaScriptの結果値を渡す方法について

このQ&Aのポイント
  • JavaScriptの結果値を渡す方法について悩んでいます。フォーカス遷移時、関数を呼び出してフォームの入力値から計算してテキストボックスに結果値を代入するという処理を考えています。
  • 関数内で結果を渡そうとしているdocument.Data.Answer.valueの部分がうまく指定できていないため、valueに代入できていないのでは?と思っています。
  • どのようにすればJavaScriptの結果値を渡すことができるのでしょうか?お知恵を拝借したいです。
回答を見る
  • ベストアンサー

JavaScriptの結果値を渡す

JavaScriptの結果値を渡す方法について悩んでします フォーカス遷移時、関数を呼び出してフォームの入力値から計算してテキストボックスに結果値を 代入するという処理を考えています <script type="text/javascript"> //--関数 function go(){ $get = 1; $a_data = parseFloat(document.Data.start_time.value); $b_data = parseFloat(document.Data.start_time.value); $c_data = parseFloat(document.Data.start_time.value); $d_data = parseFloat(document.Data.start_time.value); document.Data.Answer.value = $a_data - $get; document.Data.Answer.value = $b_data - $get; document.Data.Answer.value = $c_data - $get; document.Data.Answer.value = $d_data - $get; } </script> <?php $day = 1; while ($day < 5){ ?> <form name = "Data"> <tr> <td><select name="<?php echo $day ?>[start_time]" onblur = "go()"> <option value="1" >1</option> <option value="2" >2</option> <option value="3" >3</option> <option value="4" >4</option> </select> </td> <td><input type="text" name = "<?php echo $day ?>[Answer]" readonly value="" style=width:40px></td> </tr> </form> <?php $day++; } ?> 関数内で結果を渡そうとしているdocument.Data.Answer.valueの部分がうまく指定でいていないため valueに代入できていないのでは?と思っています。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.3

#1です すみません、曲解していたようで単なるjavascriptの話でしたね nameで要素にアクセスするとロクなことがないので 手っ取り早く処理するならidを振ることです。 ざっくりこんな感じで <script> function go(){ var get = 1; for(var i=1;i<5;i++){ var answer=document.getElementById("a"+i.toString()); var start_time=document.getElementById("s"+i.toString()); answer.value=parseFloat(start_time.options[start_time.selectedIndex].value)-get; //answer.value=parseFloat(start_time.value)-get; //これでもいけるはず } } </script> <?php $day = 1; while ($day < 5){ ?> <form> <tr> <td><select name="<?php echo $day ?>[start_time]" id="s<?php echo $day ?>" onblur="go()"> <option value="1" >1</option> <option value="2" >2</option> <option value="3" >3</option> <option value="4" >4</option> </select> </td> <td><input type="text" name = "<?php echo $day ?>[Answer]" id="a<?php echo $day ?>" readonly value="" style=width:40px></td> </tr> </form> <?php $day++; } ?>

k-karasu
質問者

お礼

回答ありがとうございます。 自分のお指摘いただいた点を参考に自分のソースを加筆・修正したところ動作確認で来ましたのでお礼申し上げます。 .netばかりやっていて最近PHPを学習始めたばかりでわからない部分が多々ありますが、参考になりました。

k-karasu
質問者

補足

回答ありがとうございます。わかりやすかったです。 ただ、わからないところがあって調べてもちょっとつかめたかったのですが 変数の[value]の用途がいまいちわからなかったのですが 変数に直接代入する形ではいけないということですよね。 その参照しているコントロール(document.form,,,)に代入するという意味でよろしいのでしょうか。 その場合は代入するときだけ 変数.value = 計算式,,, のような形だと思います。 また[parseFloat]は文字列を数値に変換する意味だと思うのですが計算式が複数ある場合 計算対象の変数に[parseFloat]で変換し計算するという認識でよろしいでしょうか。 たびたび、申し訳ありませんがよろしくお願いします。

その他の回答 (2)

  • Ogre7077
  • ベストアンサー率65% (170/258)
回答No.2

よくわかりませんが、こういうことでしょうか <script> function go() { var form = document.forms['data']; var valueGet = 1; for (var day = 1; true; day++) { var startTime = form.elements['startTime' + day]; var answer = form.elements['answer' + day]; if (!startTime || !answer) break; answer.value = ''+(parseFloat(startTime.value) - valueGet); } } </script> <form name=data><table> <?php for ($day = 1; $day < 5; $day++){ ?> <tr><td> <select name="startTime<?=$day?>" onblur="go()"> <option value=1>1<option value=2>2<option value=3>3<option value=4>4 </select> <input type=text name="answer<?=$day?>"> <?php } ?> </table></form> 注意点 * 繰り返しの処理はループで書きましょう * JavaScript の変数名に $ は誤解を招くので、使わないほうが良いでしょう * 変数名 get は誤解を招くので、動詞以外で命名しましょう * 同名の <form name> が複数あるのは感心しませんので、一つにしましょう

k-karasu
質問者

お礼

回答ありがとうございます。 お指摘いただいて、変数を変えました。 確かに、JavascriptとPHPで混合して見づらかったです。 ありがとうございました。

k-karasu
質問者

補足

回答ありがとうございます。 処理のサンプル用ソースをざっと書いたのでループなど忘れてしまいました。 変数名や変数指定などもさっと書いてしまったので紛らわしかったみたいですみません。 動作としてお教えいただいた感じになると思います。ありがとうございます。 フォーカス遷移時に入力値に対して計算するというものです。 お聞きしたいのですが、name属性が少し変わったみたいですがこの場合、[name][$day]の形で取れるということでいいのでしょうか。 また、同名のform nameが複数あるというのは関数の方で 複数使っているということでしょうか。 たびたび申し訳ありません、よろしくお願いします。

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

自覚しているかどうか微妙な質問ですが かなりおかしい話をしています javascriptの処理をPHPに戻すことはできない。 やるのであればajaxでデータを再送し、その結果をjavascriptで描画しなおすくらい。 そうでなければGETやPOSTで普通にサーバーにデータを送り 結果をPHPで得ることです。

k-karasu
質問者

お礼

回答ありがとうございます。

k-karasu
質問者

補足

回答ありがとうございます。 私の説明が変なことをいっているようなのだと思います。 私としては コントロールに値を入力、コントロールからフォーカスが外れたときに関数を呼び出します。 その関数内で入力値の計算を行い、結果値をvalueに指定するということを想定しています。 ループ処理をしているのでname属性が2次元配列のような形になっているのですが、 たとえばループ処理しない場合nameは2次元にならないので valueに代入して結果を表示できます。 また、色々調べたときに関数を呼び出す時に変数を渡して関数内で処理する、結果を変数に代入する。 その結果値を表示するといった方法でもできました。(この方法は自分の実装に合わないようなので方法だけ確認しました。) なので結果値を渡すときにnameの指定がおかしいのだと思います。 長文失礼しました、よろしくお願いします。

関連するQ&A

  • phpの入力値の渡し方

    ループでテキストボックス、セレクトボックスを作成しそれぞれのコントロールに入力した値を別phpファイルに渡すことを考えています。 ループではなく一個一個テキストボックスを作れば個々のname属性をpostすればいいと思うのですがループの場合、それぞれの入力値をどのように渡せばいいかわかりません。 <test.php> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <link rel="stylesheet" href="style.css" type="text/css" /> <meta name="viewport" content="width=device-width"> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>勤怠データ入力</title> </head> <script type="text/javascript"> function myEnter(){ myRet = confirm("入力画面を閉じてよろしいですか?"); } </script> <body> <div id="name"> <table> <tr style="text-align:center; background-color:#DDEBF7;"> </tr> <form name = "Data" action="foo.php" method="POST"> <tr style="text-align:center;"> </tr> </table> </div> <div id="button"> <input type="submit" name ="touroku" value="登録更新" style="margin-right:30px;" /> <input type="submit" value="戻る" onclick="myEnter()" /> </div> <div id="calendar"> <table style="text-align:center;"> <tr style="text-align:center; background-color:#DDEBF7;"> <td style="width:20px;">日</td> <td>開始時間</td> <td>終了時間</td> <td>入力1</td> <td>入力2</td> <td>入力3</td> </tr> <tr><!--1日--> <?php $day = 1; while ($day < 32){ ?> <td><input type="text" readonly value="<?php echo $day ?>" style="width:20px;"</td> <td><select name="start_time" > <option value="0" > 0</option> <option value="1" > 1</option> </select> : <select name="start_minute"> <option value="00" >00</option> <option value="30" >30</option> </select> </td> <td><select name="end_time" > <option value="0" >0</option> <option value="1" >1</option> </select> :<select name="end_minute"> <option value="00" >00</option> <option value="30" >30</option> </select> </td> <td><input type="text" name = "nyuryoku1" value="" style=width:150px></td> <td><input type="text" name = "nyuryoku2" value="" style=width:150px></td> <td><input type="text" name = "nyuryoku3" value="" style=width:150px></td> </td> </tr> <?php $day++; } ?> </form> </body> </html> <foo.php> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <?php $s_hour = ($_POST['start_time']); $s_minutes = ($_POST['start_minute']); $e_hour = ($_POST['end_time']); $e_minutes = ($_POST['end_minute']); $data1 = ($_POST['nyuryoku1']); $data2 = ($_POST['nyuryoku2']); $data3 = ($_POST['nyuryoku3']); $s_time = ($s_hour.$s_minutes); $e_time = ($e_hour.$e_minutes); echo '開始時間'; echo $s_time; echo '終了時間'; echo $e_time; echo '入力1'; echo $data1; echo '入力2'; echo $data2; echo '入力3'; echo $data3; ?> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>無題ドキュメント</title> </head> <body> テスト実行 </body> </html>

    • ベストアンサー
    • PHP
  • javascriptにphpの変数を用いる

    JavaScriptでサブウインドウのフォームから親ウインドウのフォームにデータを送るプログラムを書いています。 親ウインドウのページによって処理を変えているのですが、phpの変数を使うと関数自体がエラーになってしまいます。 どう書くのが正しいのでしょうか?教えてください。 プログラムは下記です。 if(page=="0"){ window.opener.document.form_name.input_name.value=input_data; window.close(); } else{   for(i=1; i<6; i++){     var pagename = "page_"+i;     if(page == pagename){ window.opener.document.<?php echo $_GET[form_name]; ?>.<?php echo $_GET[input_name]; ?>.value=input_data; window.close();   } }

  • PHP上でのJavaScript記述について

    PHP上でのJavaScript記述についての質問です。 http://iswebmag.hp.infoseek.co.jp/sample181.html ↑のようなものをPHP上で作成したいと思っています。 そこで、似たようなものを作成してみたのですが、 どうにもうまく動きませんでした。 そこで、試しに上記サイトのサンプルを全てechoで出力するコードを書いてみたの ですが、 それでも動きませんでした。 このスクリプトはPHP上では動作しないのでしょうか? PHPに詳しい方、どうかご教授お願いします。 ソースは以下になります。 --------------------------------------------------------- <HTML> <META http-equiv="Content-Type" content="text/html; charset=UTF-8"> <HEAD> <TITLE>魅せるホームページ作成講座</TITLE> </HEAD> <BODY> <?php echo '<FORM name="f1">'; echo '<INPUT type="radio" name="cate" onClick="Infoseek()">各種情報 <BR>'; echo '<INPUT type="radio" name="cate" onClick="Rakuten()">買い物<BR>'; echo '<SELECT name="links">'; echo '<OPTION>ラジオボタンを選択</OPTION>'; echo '</SELECT>'; echo '<INPUT type="button" value="リンク先を表示" onClick="goLink()">'; echo '</FORM>'; echo '<SCRIPT language="JavaScript">'; echo '<!--'; echo 'function Infoseek(){'; echo 'document.f1.links.length=4;'; echo 'document.f1.links.options[0].text="Infoseek検索";'; echo 'document.f1.links.options[1].text="Infoseekニュース";'; echo 'document.f1.links.options[2].text="Infoseek天気";'; echo 'document.f1.links.options[3].text="InfoseekTV番組表";'; echo 'document.f1.links.options[0].value="http://www.infoseek.co.jp/";'; echo 'document.f1.links.options[1].value="http://news.www.infoseek.co.jp/";'; echo 'document.f1.links.options[2].value="http://tenki.www.infoseek.co.jp/";'; echo 'document.f1.links.options[3].value="http://tv.www.infoseek.co.jp/";'; echo '}'; echo 'function Rakuten(){'; echo 'document.f1.links.length=3;'; echo 'document.f1.links.options[0].text="楽天";'; echo 'document.f1.links.options[1].text="楽天フリマ";'; echo 'document.f1.links.options[2].text="楽天ブックス";'; echo 'document.f1.links.options[0].value="http://www.rakuten.co.jp/";'; echo 'document.f1.links.options[1].value="http://furima.rakuten.co.jp/";'; echo 'document.f1.links.options[2].value="http://books.rakuten.co.jp/";'; echo '}'; echo 'function goLink(){'; echo 'imax=document.f1.links.length-1;'; echo 'for (i=0 ; i<=imax ; i++){'; echo 'if (document.f1.links.selectedIndex==i){'; echo 'window.open(document.f1.links.options[i].value);'; echo '}'; echo '}'; echo '}'; echo '// -->'; echo '</SCRIPT>'; ?> </BODY> </HTML> ---------------------------------------------------------

    • ベストアンサー
    • PHP
  • javascriptの変数の渡し方

    ラジオボタンで選択した値によって表示するテーブルを変えるフォームを作っています。 AAAは入力ボックスが1つ BBBは入力ボックスが2つ 同じphpへ送信して、入力ボックスへデータは入るのですが、javascriptの値を渡すことが出来ません。 BBBでsubmit後、BBBの入力ボックスを表示することは出来ますでしょうか。 <? echo "<form method=post action=?>"; echo "<input type=radio name='user' onclick='change_user(this.value)' uid='user' value=1"; if($user==1){ echo " checked"; } echo ">AAA"; echo "<input type=radio name='user' onclick='change_user(this.value)' uid='user' value=2"; if($user==2){ echo " checked"; } echo ">BBB"; echo "<br>"; echo "<span id=inner>"; echo "<table>"; echo "<tr>"; echo "<td>AAAのフォーム</td>"; echo "<td><input name=form1 type=text value=$form1></td>"; echo "</tr>"; echo "</table>"; echo "</span>"; echo "<span id=outer>"; echo "<table>"; echo "<tr>"; echo "<td>BBBのフォーム</td>"; echo "<td><input name=form1 type=text value=$form1></td>"; echo "<td><input name=form2 type=text value=$form2></td>"; echo "</tr>"; echo "</table>"; echo "</span>"; echo "<br>"; echo "<input type=submit value=submit>"; echo "</form>"; ?> <script language='javascript'> var inner = document.getElementById('inner'); var outer = document.getElementById('outer'); function change_user (uid) { if (uid == '2') { inner.style.display = 'none'; outer.style.display = ''; } else { inner.style.display = ''; outer.style.display = 'none'; } } change_user(document.getElementById('user').value); </script>

    • ベストアンサー
    • PHP
  • JavaScriptの読み込み順

    下記コードを実行すると、プルダウンメニューに値が入る前にボタンがクリックされてしまいます。 どのようなコードを書けば正常に動作するのでしょうか。 ■html内 <html> <head> <title>SCT</title> <script type="text/javascript"> onload = function() { var d = new Date() ; d.setTime((new Date).getTime()) ; newOption = document.createElement('option') ; newOption.value = newOption.innerHTML = d.getFullYear()-1 ; document.getElementById('year').appendChild(newOption) ; newOption = document.createElement('option') ; newOption.value = newOption.innerHTML = d.getMonth()+1 ; document.getElementById('month').appendChild(newOption) ; newOption = document.createElement('option') ; newOption.value = newOption.innerHTML = d.getDate() ; document.getElementById('day').appendChild(newOption) ; } </script> <script type="text/javascript" language="JavaScript" src="./file.js"> </script> </head> <form NAME="Myfm" method="post" action="☆☆URL☆☆"> <body onLoad="yobi()"> <table border="0"> <tr> <td> <select name="startyear" id="year"> </select> </td> <td>年</td> <td> <select name="startmonth" id="month"> </select> </td> <td>月</td> <td> <select name="startday" id="day"> </select> </td> <td>日</td> </tr> <tr> <td> <select name="endyear"> <option value=201>2011 </select> </td> <td>年</td> <td> <select name="endmonth"> <option value=8>8 </select> </td> <td>月</td> <td> <select name="endday"> <option value=1>1 </select> </td> <td>日</td> </tr> <tr> <td><input type="submit" value="集計" NAME="mybut"> </td> </tr> </table> </body> </form> </html> ■file.js内 function yobi(){ document.Myfm.submit(); }

  • form id、nameの番号振りなおし

    jqueryとphpにてフォームを作成しています。 フォームの追加、削除できるシステムを作っており、 フォームの追加はできたので、削除した際のinputのnameやidの番号を振り直しができず困っています。 商品1<br> <a href="javascript:void(0);" class="del" id="del_1">削除</a> <table> <tr> <th>商品番号</th> <td><input type="text" name="item[data][1][sir]" value="<?php echo $item[data][1][sir]; ?>"></td> </tr> <tr> <th>商品名</th> <td><input type="text" name="item[data][1][name]" value="<?php echo $item[data][1][name]; ?>"></td> </tr> <tr> <th>商品個数</th> <td> <select name="item[data][1][num]"> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> <option value="4">4</option> </select> </td> </tr> </table> <a href="javascript:void(0);" id="add">フォームの追加</a> としており、 「フォームの追加」をクリックすると 商品2<br> <a href="javascript:void(0);" class="del" id="del_2">削除</a> <table> <tr> <th>商品番号</th> <td><input type="text" name="item[data][2][sir]" value="<?php echo $item[data][2][sir]; ?>"></td> </tr> <tr> <th>商品名</th> <td><input type="text" name="item[data][2][name]" value="<?php echo $item[data][2][name]; ?>"></td> </tr> <tr> <th>商品個数</th> <td> <select name="item[data][2][num]"> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> <option value="4">4</option> </select> </td> </tr> </table> 商品3<br> <a href="javascript:void(0);" class="del" id="del_3">削除</a> <table> <tr> <th>商品番号</th> <td><input type="text" name="item[data][3][sir]" value="<?php echo $item[data][3][sir]; ?>"></td> </tr> <tr> <th>商品名</th> <td><input type="text" name="item[data][3][name]" value="<?php echo $item[data][3][name]; ?>"></td> </tr> <tr> <th>商品個数</th> <td> <select name="item[data][2][num]"> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> <option value="4">4</option> </select> </td> </tr> </table> ができるようにPHPにてSESSION管理をおこなっています。 追加はできたのですが、 上記のフォーム4つほど出した後に商品2を削除した場合の商品1、商品3、商品4の各nameの番号(item[data][*][sir]、item[data][*][name]、item[data][*][num]の*部分) 振りなおしができず困っています。 いくらやってもできないため、どなたかソースを教えていただけないでしょうか。 宜しくお願いいたします。

  • javascriptで2箇所のphpの関数を取得したいのです。

    javascriptで2箇所のphpの関数を取得したいのです。 見よう見まねでやっている初心者です。よろしくお願いします。 javascriptにてphpの関数をよびだしてhtmlのinput type="text"に値を出力しようとしています。 2か所のphp を下記のようにhtmlに書いて取得しようとしたのですがどちらか一方しか取得できません。 なんとか両方を読み込めるようにできないでしょうか?分かりにくい質問かと思いますので例を書いて見ましたのでどうかよろしくお願いいたします。 (例) <script type="text/javascript" src="../data/zzz.php?aaa=abc" ></script> <script type="text/javascript" src="../../../data/xxx.php?bbb=abc" ></script> 上記のように書いても片方しか取得しないようです。 以下../dataのzzz.phpのphpです。 <?php $aaa = $_GET['aaa']; header("Content-type: application/x-javascript"); echo "window.onload = function () {"; if ($aaa== 'abb') {echo "document.getElementById(\"xxx\").value=100;","document.getElementById(\"yyy\").value=1;";} elseif ($aaa == 'abc') {echo "document.getElementById(\"tanka\").value=120;","document.getElementById(\"yyy\").value=2;";} echo "}"; ?> 以下../../../dataのxxx.phpのphpです。(例) <?php $bbb = $_GET['bbb']; header("Content-type: application/x-javascript"); echo "window.onload = function () {"; if ($bbb== 'abb') {echo "document.getElementById(\"zzz\").value=50;","document.getElementById(\"vvv\").value=10;";} elseif ($bbb == 'abc') {echo "document.getElementById(\"tanka\").value=51;","document.getElementById(\"vvv\").value=20;";} echo "}"; ?> 以上2か所のディレクトリのphpを取得したいのですが、これはできない事なのでしょうか?ちがうディレクトリから取得しなければ更新作業が大変になってしまうのです。どうかよろしくお願いいたします。

    • ベストアンサー
    • PHP
  • セレクトボックスの選択を保持したい。入力フォーム。

    セレクトボックスの選択を保持したい。入力フォーム。PHP 送付画像のような、セレクトボックスの「時間指定1」で選択したい時間をセレクトボックスから選んで、確認画面へのボタンをクリックすると、「時間指定1」にまた、戻ってしまいます。ここのセレクトボックスの選択をキープしたいのですが、どうコードを書けば良いのかわかりません 提示したコードにもあるように 参考書に書いてあったのですが、セレクトボックスの選択をキープするプログラミングコードを以下のようにすれば良いと。そのまま書いてみたのですが、確認画面へのボタンをクリックすると、やはり「時間指定1」に戻ってしまいます。 <option value="10:00~11:00"><?php if(isset($timehh1) && $timehh1==="10:00~11:00") { echo "selected" ;} ?>>10:00~11:00</option> どこが間違っているのでしょうか? コードを教えて頂けないでしょうかいただけないでしょうか?よろしくお願いいたします。困っています。 以下書いたコードになります。 <?php session_start(); $errors = array(); if(isset($_POST['submit'])) { $time4 =$_POST['time4']; $timehh1 =$_POST['timehh1']; if($time4 === "") { $errors['time4'] ="第1希望:※月と日付を選択してください。 "; } if($timehh1 === "") { $errors['timehh1'] ="第1希望:※時間指定1を選択してください。 "; } if(count($errors) === 0) { $_SESSION['time4'] = $time4; $_SESSION['timehh1'] = $timehh1; } if(isset($_GET['action']) && $_GET['action'] === 'edit'){ $time4 = $_SESSION['time4']; $timehh1 = $_SESSION['timehh1']; } ?> <!DOCTYPE html> <html> <head> <meta content="text/html; charset=utf-8"/> <?php echo "<ul>";foreach($errors as $value) { echo "<li>"; echo $value; echo "</li>"; } echo "</ul>"; ?> </head> <body> <form action ="form1.php" method ="post"> <td class="b">第1希望:<span class="fontS">※</span></td> <input type="date" id="input_date1" class="cal lt_004 hasDatepicker" name="time4" value="<?php if(isset($time4)){ echo $time4; } ?>"/></td > <select id="input_time1" name="timehh1"> <option value="">時間指定1</option> <option value="10:00~11:00"><?php if(isset($timehh1) && $timehh1==="10:00~11:00") { echo "selected" ;} ?>>10:00~11:00</option> <option value="11:00~12:00"><?php if(isset($timehh1) && $timehh1==="11:00~12:00") { echo "selected" ;} ?>>11:00~12:00</option> </select > <input type ="submit" name ="submit"value="確認画面へ"/> </form> </body></html>

    • ベストアンサー
    • PHP
  • PHPでjavascriptを表示する方法

    すみません。javascriptの事はほとんど分からないのですが、 phpを使ってjavascriptを表示したいのですが基本的な部分で分かりません。 例えば <?php echo"<script>document.write(\"PHP!\")</script>;" ?> は簡単にできますが、タグに入っているjavascriptはどうやってphpで表示させるのでしょうか? <form name="aaa" method="post" action="bbb.php"> <select name="ccc" onChange="document.forms['aaa'].submit()" > <option value="111">111</option> <option value="222">222</option> </select> </form> 上記のスクリプトを単純にphpで表示したいのですが、どうやってもphpで囲むとonChangeが動かず 動的にはなりません。 何時間もぐぐったりしてますが解決しません。タグの中のjavascriptは直接phpでは動かせないのでしょうか?

    • ベストアンサー
    • PHP
  • JavaScriptからphp関数の呼び出し

    javaScriptで1秒毎にphpの関数を呼び出しているのですが、 php側で、returnしている日時が動的に表示されません。 何がいけないのか教えて頂けますでしょうか? 色んな参考ページを見ると、phpの関数で動的に 動かせると書いてあるのですが、動的になりません。 -------------------------------------------------------- <jsphptest.htmlソース> <html> <head> <script type="text/javascript"src="jsphptest.php"></script> <script language="javascript"> <!-- function time() { //JavaScriptで日時表示 var now = new Date(); mon = now.getMonth()+1; day = now.getDate(); hou = now.getHours(); min = now.getMinutes(); sec = now.getSeconds(); year = now.getYear(); if (year < 2000) { year += 1900; } if (mon <= "9"){mon = "0" + mon;}; if (day <= "9"){day = "0" + day;}; if (hou <= "9"){hou = "0" + hou;}; if (min <= "9"){min = "0" + min;}; if (sec <= "9"){sec = "0" + sec;}; document.form1.j_tokei.value= year +"/"+ mon +"/"+ day +" "+ hou +":"+ min +":"+ sec; //PHP関数の呼び出し document.form1.p_tokei.value= php_time(); //1秒毎 setTimeout('time()',1000); } // --> </script> </head> <body onLoad="time();"> <form name="form1" mathod=post> JavaScript日時<input type="text" name="j_tokei" size=25><br> PHP日時<input type="text" name="p_tokei" size=25> </form> </body> </html> -------------------------------------------------------- <jsphptest.phpソース> <?php $str .= "function php_time(){"; $str .= "return('".date('Y-m-d H:i:s')."');"; $str .= "}"; echo $str; ?>

専門家に質問してみよう