3

重複の可能性:
phpページからjavascriptに変数を渡し、データを表示する方法

PHP変数をjavascript関数に渡そうとしています。この問題に関する記事や質問がたくさんあることは知っていますが、どれも私には役に立たないようです。私の問題は少し奇妙です。コードから始めましょう。

これが私のPHPコードです:

<?php 
    session_start();

    $type = 'Dance';
    $environment = 'Outside';
?>

これはHTMLコードです:

<form onsubmit="showEvents(<?=$type ?>, <?=$environment ?>)">
        <select class="drop_down_menus" name="type">
            <option>All</option>
            <option>Dance</option>
            <option>Festival</option>
            <option>Music</option>
            <option>Stand-Up</option>
            <option>Theather</option>                               
        </select>
        <select class="drop_down_menus" name="environment">
            <option>All</option>
            <option>Indoor</option>
            <option>Outdoor</option>
        </select>
        <input type="submit" id="submit_button" value="Event Me Out!">
</form>
<div id="test_div">test1</div>

これはJSコードです:

function showEvents(type, environment) {
    document.getElementById('test_div').innerHTML = "test2";
}

送信ボタンをクリックすると、「test_div」のテキストが「test1」から「test2」に変更されますが、フォームを送信しても何も変更されません。

奇妙なことはここから始まります:

次のPHP変数を使用して、両方の変数を「$ current_year」に変更すると、機能します。

<?php
    $today = getdate();
    $current_year = $today['year'];
?>

<form onsubmit="showEvents(<?=$current_year ?>, <?=$current_year ?>)">
...rest of the HTML code...

私は最初にそれがスコープの問題だと思ったが、明らかにそれは、すべてが同じスコープを持っている間、1つの変数が機能し、他の変数が機能しないためではない。

多分私が知らない非常に単純な何かがあるでしょう。あなたが私を助けてくれる(または私を別の質問に導く)ことができれば、私は感謝します。これまでのところ、どのソリューションも役に立ちませんでした。

前もって感謝します。

$type注1:変数と変数をエコーし​​ようとしまし$environmentたが、役に立ちませんでした。

注2:ドロップダウンメニューの選択を使用していないようですが、ここに完全なコードを記述していません。

4

2 に答える 2

10

使用する必要があります:

<form onsubmit="showEvents('<?=$type ?>', '<?=$environment ?>')">

これを実行しようとしています:showEvents(Dance, Outside)の代わりに:showEvents('Dance', 'Outside')しかし、より多くのエラーが発生する可能性があります。たとえば、<?=$type ?>お勧めしません。を使用する必要があります<?php echo $type ?>

于 2012-08-25T17:51:14.113 に答える
1

問題はおそらく、コードでphp変数をエコーするために使用した短いタグです。

PHP の短いタグは、すべてのサーバーで有効になっているとは限らないため、使用しないでください。常に使用することをお勧めします

<?php echo $something ?>

それ以外の

<?= $something ?>
于 2012-08-25T17:54:56.593 に答える