1
<script type="text/javascript">
function changeValue(){
var option=document.getElementById('category').value;

if(option=="$category"){
        document.getElementById('title').value="<php echo $category;?>";
}
    else {
        donothing
    }

}
</script>

<select name="category" id="category" class="cat">
<option class="level-0" value="86" selected="selected">Op1</option>
<option class="level-0" value="93"> Op 2</option>
<option class="level-0" value="125"> Op 3</option>
</select>

<label for="title"><?php _e('Title', 'variable'); ?> <span title="required">*    </span></label> <input type="text" class="text" name="title" id="title" value="//Here is the thing I do not know what to put here”?>" />

みなさん、こんにちは。

私は他の投稿を読んで、人がオプションの1つから選択すると、オプションの名前がタイトル入力フィールドの値を自動的に埋める方法を見つけました。これどうやってするの?何度も試しましたが、エコーは失敗しました。助けてください!

ありがとうございました

クリアされましたが、以下の更新の問題がさらに発生します------------------------------------------------------ 私には見えません私のフォームのスクリプト作業を取得しました。私は書き込みによってスクリプトを挿入しようとします:

<?php
//( I put the function script into a separated .js file, only function itself is included in the .js file)
echo '<script type="text/javascript" src="autocat.js">';
echo '</script>';
?>

上記のコードをフォームを生成したphpファイルに追加します。

フォームタグが開始する直前に挿入しようとしましたが、まったく機能していないようです...何が間違っている可能性がありますか? Chrome は、スクリプトのステータスがキャンセルされたと述べました。

明確にするために、以下のコードは autocat.js 内にあります。

function changeValue(val){ 
document.getElementById('title').value= obj[obj.selectedIndex].innerHTML;
}

また、Chromeは次のように報告しました:

リソースの読み込みに失敗しました: サーバーは autocat.js ファイルのステータス 404 (Not Found) で応答しました

更新
上記のエラーをクリアしましたが、コードは問題ありませんが、フォームをトリガーすると、onChange が実行されていないようです...フォームが PHP によって生成される前に、フォームが javaScript を解析するためでしょうか?

ありがとうございました

4

1 に答える 1

1

PHPとJavaScriptについて少し混乱しているようです。フォーム オブジェクト間の相互作用は、javascript のみを使用して行うことができます。PHP ファイルからさらにデータが必要な場合は、AJAX 呼び出しを使用します。簡単にするために、これをチェックしてください。それが役に立てば幸い。

HTML

<select name="category" id="category" class="cat" onChange="changeValue(this.value)">
<option class="level-0" value="86" selected="selected">Op1</option>
<option class="level-0" value="93"> Op 2</option>
<option class="level-0" value="125"> Op 3</option>
</select>

<label for="title">
    <span title="required">*</span>
</label>
<input type="text" class="text" id="title" name="">

JavaScript

function changeValue(val){
    document.getElementById('title').value = val;
}

実施例

http://jsbin.com/onosex/1/edit

編集

オプション ラベルの値 (テキスト、html など) を取得するには、これを使用します。

onChange 部分は、値だけでなくオブジェクト自体を渡すようになりました

HTML

<select name="category" id="category" class="cat" onChange="changeValue(this)">
<option class="level-0" value="86" selected="selected">Op1</option>
<option class="level-0" value="93"> Op 2</option>
<option class="level-0" value="125"> Op 3</option>
</select>

<label for="title">
    <span title="required">*</span>
</label>
<input type="text" class="text" id="title" name="">

JavaScript

function changeValue(obj){
    document.getElementById('title').value= obj[obj.selectedIndex].innerHTML;
}

実施例

http://jsbin.com/onosex/3/edit

于 2013-01-15T13:15:53.843 に答える