0

JavaScript を PHP スニペットに配置して、関数をロードできるようにしたいと考えています。私はこのサイトをフォローしてきました: http://www.dynamicdrive.com/forums/showthread.php?41129-How-to-put-JS-in-PHPで運がありませんでした。

これまでの私のコードは次のとおりです。

<input type="hidden" name="projectPhoto" value='<?php echo "<script type=\"text/javascript\" src=\"js\phpjs.js\"></script>";
                                                                ?>'/>

明確に指示に従っているにもかかわらず、結果はまさにエコーされているものです。スクリプトは実行されていません。これは可能ですか?

また、これは私の機能です:

function uploadFile(){
    var filename = document.getElementById("image").value;
    filename = filename.replace("C:\\fakepath\\", "");
    alert(filename);
    filename = String(filename);
    document.getElementById("projectPhoto").value = filename;
};
4

4 に答える 4

4

この JS ファイルを単独でロードする必要があります。そのためにphpも必要ありません。含めたのと同じスクリプトタグを使用できます。

 <script type="text/javascript" src="js/phpjs.js">

そのタグを配置するだけです。入力タグの下にあるとしましょう。また、次のようなものをもう 1 つ配置します。 <script> uploadFile();

しかし、これはうまくいかないと思います。あなたの関数は、「#image」要素の値をこの隠しフィールドに入れたいですか? この #image は動的に作成されますか? すなわち。ユーザーはそこに何かを入力しますか?

次に、その入力タグで次のようなことを簡単に実行できます。

<input id="image" onchange="uploadFile()"/>
于 2013-07-09T07:48:43.533 に答える
1

それが可能かどうかはわかりません。しかし、それは正しくありません。

入力フィールドの値から JavaScript を取り出し、代わりに関数に値を設定します。

function uploadFile(){
    var fileName = document.getElementById('image').value;
    document.getElementById('projectPhoto').value = fileName;
}

次のような入力フィールドを使用します。

<input type="hidden" name="projectPhoto" id="projectPhoto" value='' />
于 2013-07-09T07:52:07.957 に答える
0

少なくとも 2 つの問題があります。

  1. javascript と php を混在させていますが、php で javascript を使用できないため、これは機能しません。$fileName = document.getElementById('image').value;

  2. ブラウザーが入力フィールドの属性<script>内でタグを実行するかどうかはわかりません。valueその外側にスクリプトを配置します。

于 2013-07-09T07:51:55.180 に答える