1

私は CodeIgniter を使用しており、JavaScript を内部に含む単一の PHP ファイルで、JavaScript 変数を本体 (PHP) に渡し、それを非表示の入力にしたいと考えています。しかし、コントローラーを使用して値 (JavaScript 変数がある場所) を送信すると、コントローラーは常に何も返しません。コードの一部を次に示します。

JS:

function pass() {
   //some code
   document.getElementById('yes').innerHTML = yes; //where yes is a var
}

HTML (PHP):

<form action="search">
        <input type="hidden" name="yes" value="<?php $yes= "<p id='yes'> </p>"; echo $yes;?>" />
        <input type="submit" name="yes" value="Done" />
</form>

yesしたがって、コントローラーに投稿するたびに、$yes = $this->input->post('yes');何も返されません。

次のファイルで再度使用できるように、JavaScript 変数を渡すにはどうすればよいですか? ありがとうございました!

4

4 に答える 4

0
  • あなたのsubmitボタンとあなたのhiddenフィールドは同じname yesです。

  • hiddenyes で入力にアクセスしようとしましたが、入力idにこの id がありません。getElementByName('yes')代わりに使用するか、隠しフィールドを指定してくださいid='yes'

  • innerHtml要素の内部 HTML のみを設定または返す which を使用しますvalue

HTML コード:

<form action="search">
    <input id='yes' type="hidden" name="yes" value="<?php $yes= "<p id='yes'> </p>"; echo $yes;?>" />
    <input type="submit" name="yess" value="Done" />
</form>

JS:

document.getElementById('yes').value = yes;//yes is a variable
于 2013-09-01T15:14:39.297 に答える
0

ではなく、のvalueプロパティを設定する必要があります。また、他のフィールドや「送信」ボタンとは異なる名前を付ける必要があります。最後に、実際に で取得できるように、「id」プロパティを指定する必要があります。<input>innerHTML<input><input>getElementById()

于 2013-09-01T15:15:19.067 に答える
0

フォームメソッドを設定していないため、デフォルトで設定GET
する必要があります

<form action="search" method="POST">   

JSを試してください:

var yes = "<?php echo $_POST['yes']; ?>";
document.getElementById('yes').innerHTML = yes;
于 2013-09-01T16:17:49.330 に答える
0

valueではなく、非表示の入力の を設定する必要がありますinnerHTML。このコードは動作するはずです:

function pass() {
   //some code
   document.getElementById('yes').value = yes; //where yes is a var
}

Pointy が指摘しているように、別の問題は、非表示の入力には実際には ID がないため、ID を指定する必要があることです (この場合、ID は である必要がありますyes)。

また、PHP を使用して非表示の入力に挿入する html をエスケープして、誤って解析されないようにすることも必要です。あなたはこれを行うことができますhtmlspecialchars()

<form action="search">
        <input type="hidden" id="yes" name="yes" value="<?php $yes= htmlspecialchars("<p id='yes'> </p>"); echo $yes;?>" />
        <input type="submit" value="Done" />
</form>
于 2013-09-01T15:17:02.183 に答える