• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:hiddenにjavascript関数の戻り値)

hiddenにjavascript関数の戻り値を設定する方法

このQ&Aのポイント
  • hidden属性でjavascript関数の戻り値を設定する方法がわかりません。テキストエリアの値をhidden属性に設定するPHPスクリプト内で、$_POST['text_val']がNULLになってしまいます。
  • テキストエリアの値をhidden属性に設定する際に、javascript関数を使って値を取得する方法について教えてください。
  • javascriptの関数を使ってテキストエリアの値を取得し、hidden属性に設定する方法を知りたいです。

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

  • ベストアンサー
  • notnot
  • ベストアンサー率47% (4901/10362)
回答No.2

まず、 >onclickイベントでjavascript とupdatMemo($sid)という、PHP関数をコールしているのですが、 onclickでPHP関数を呼び出すのは不可能です。 updateMemo($sid) の部分は、HTMLページを生成する時点で実行されます。 ブラウザでそのページのHTMLソースを見てください。 それ以降の補足内容は意味がよくわからないのですが、最初のところで勘違いしているので、おかしな方向に考えが行ってるのではないでしょうか。

beterugius
質問者

お礼

ご回答どうも有り難うございました。

その他の回答 (1)

  • notnot
  • ベストアンサー率47% (4901/10362)
回答No.1

基本的に間違ってます。 こんな感じで。 <script language="javascript"> function getText(){ var text = document.getElementById('contents').value; document.getElementById('text_val').value = text; } </script> ~ <form action="~" method="POST"> <input type="hidden" name="text_val" id="text_val" value=""> <input type="submit" onclick="getText()"> ~

beterugius
質問者

お礼

ご回答、どうも有難うございました。

beterugius
質問者

補足

<?php echo '<input type="submit" value="更新" onclick="getText();'.updateMemo($sid).'">'; と書いて、onclickイベントでjavascript とupdatMemo ($sid)という、PHP関数をコールしているのですが、 notnotさんのおっしゃる通り、hiddenで送った値には ちゃんと、getText()での値が入っていました。 ですが、その下の方で、updateMemo($sid) ~ $sql = "UPDATE ideamemo_table SET contents='$text_val', update_date='$update' WHERE sid='$sid';"; $result = mysql_query($sql, $con) or die(mysql_error()); ~ というデータベース操作関数updateMemo()を、自動(このソースファイルdeleteUpdate.php)でコールしてしまい(逐次処理で上から下に処理されると) 、たとえば、テキストエリアを何も 上書かないまま、ページを更新したり、メモの入力フォームに遷移したあと、 deleteUpdate.phpに戻ったりしても、必ず echo '<input type="submit" value="更新" onclick="getText();'.updateMemo($sid).'">'; を通過してしまい、データベースの中身をみると、contents(メモの本体) カラムの内容が空になってしまいます。 contents カラムに正しい、更新されたメモをUPDATEするためには 何か回避策はありますか? お忙しいところ、申し訳ありませんが、教えていただきたいです。

関連するQ&A