1

ここに示すように機能する次のコードがあります。http://jsfiddle.net/rBd53/12/

1つのファイルのHTML/JSコード:

<script type="text/javascript">
    var textBlocks = new Array(
        'Select from the list to change this box',
        'Text block two',
        'Text block three'); 

    function changeText(form) {
        var ind = form.qwer.selectedIndex;
        document.getElementById("display").innerHTML=textBlocks[ind]; 
    }
</script>

<form>
    <select name="qwer" onChange="changeText(this.form);">
        <option value="0">Select</option>
        <option value="1">One</option>
        <option value="2">Two</option>
    </select>
    <br>
    <div id="display">Select from the list to change this box</div> 
</form>

CakePHP 1.3で正しく動作するようにこのコードを変更するにはどうすればよいですか?test_js.js下にファイルを作成し、app/webroot/jsその<script>...</script>部分をそこに配置しました。私もecho $scripts_for_layout;app/views/layouts/default.ctp<head>ます。

要素(.ctp)ファイルの内容が正しくないと推測しています。ドロップダウンメニューと下のテキストが表示されますが、選択したオプションに応じてテキストが動的に変更されることはありません。私は次のことをしました。

<?php echo $this->Html->script('test_js', array('inline'=>false)); ?>
<form>
<select name="qwer" onChange="changeText(this.form);">
    <option value="0">Select</option>
    <option value="1">One</option>
    <option value="2">Two</option>
</select>
<br>
<div id="display">Select from the list to change this box</div> 
</form>
4

2 に答える 2

1

ヘルパーメソッドを間違って呼び出していると思います.2つのパラメータしか必要としません:

echo $this->Html->script('test_js', array('inline'=>false));

また、それがうまくいかない場合は、どの警告が表示されているかを正確に知るとよいでしょう...

于 2013-02-06T20:13:53.083 に答える
0

私の問題は現金化の問題だったようです。それはそのまま機能しており、これが私が持っているものです。

app\webroot\js\test_js.js:

var textBlocks = new Array(
    'Select from the list to change this box',
    'Text block two',
    'Text block three'); 

function changeText(form) {
    var ind = form.qwer.selectedIndex;
    document.getElementById("display").innerHTML=textBlocks[ind]; 
}

ビュー要素ページ (.ctp):

<?php echo $this->Html->script('test_js', array('inline'=>false)); ?>
<form>
    <select name="qwer" onChange="changeText(this.form);">
        <option value="0">Select</option>
        <option value="1">One</option>
        <option value="2">Two</option>
    </select>
<br>
<div id="display">Select from the list to change this box</div> 
</form>
于 2013-02-07T16:15:43.180 に答える