2013-07-09 4 views
0

Я хотел бы поместить некоторый JavaScript в PHP-фрагмент и иметь возможность загрузить функцию. Я слежу за этим сайтом: http://www.dynamicdrive.com/forums/showthread.php?41129-How-to-put-JS-in-PHP и не повезло.Размещение Javascript внутри 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; 
}; 
+0

проверкой с предупреждением(); –

+1

Вы не можете повторить тег скрипта внутри тега ввода и ожидать его работы. Вы пытаетесь повторить скрипт так, как есть, и затем установите значение примерно так: value = uploadFile() – Gimmy

+0

Мы обсуждали это раньше, это ненадежно, некоторые браузеры также возвращают fakepath ex. – Tredged

ответ

4

Вы должны загрузить этот файл JS на его самостоятельно. Вам даже не нужно PHP для этого, вы можете использовать один и тот же тег сценария вы включены:

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

Просто поместите этот тег, скажем ниже вашего входного тега. Кроме того, поставьте еще один сильфон, который: <script> uploadFile();

Но я подозреваю, что это не сработает. Ваша функция хочет поместить значение элемента «#image» в это скрытое поле? Является ли это #image динамически созданным? То есть. пользователь что-то вводит?

Тогда вы можете просто сделать на , что ввода тега что-то вроде этого:

<input id="image" onchange="uploadFile()"/> 
3
<?php 

// PHP Single quotes and double quotes for JavaScript 
echo '<script type="text/javascript">'; 
echo 'document.write("Like That!")'; 
echo '</script>'; 

?> 
0

У вас есть две проблемы, по крайней мере:

  1. Вы смешиваете JavaScript и PHP вверх, что не может работайте, поскольку вы не можете использовать javascript в php: $fileName = document.getElementById('image').value;

  2. Я не уверен, что браузер выполнит <script> теги в атрибуте value поля ввода. Поместите скрипт за его пределы.

1

Я не уверен, что это возможно. Но это выглядит не так.

Я бы взял JavaScript из стоимости вашего поля ввода и вместо того, чтобы установить значение в вашей функции:

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

С вашим полем ввода, как это:

<input type="hidden" name="projectPhoto" id="projectPhoto" value='' /> 
Смежные вопросы