Сочетание javascript/jQuery и PHP

Я использую Uploadify для загрузки изображения. Теперь мне нужно получить правильный путь загрузки.

У меня есть следующий код/скрипт:

  <?php
    $uploadifyPath = get_bloginfo('url') . '/wp-content/plugins/uploadify/';
    $galleryPath = "'".getGalleryURL('1620')."'"; // <--- 1620 is inputed by me. 
  ?>

  <input id="galleryID" type="hidden" value="1620" name="galleryID"/>
  <input id="fileInput" name="fileInput" type="file" />

  <script type="text/javascript">// <![CDATA[
    $(document).ready(function() {
      $('#fileInput').uploadify({
          'uploader'  : '<?php echo $uploadifyPath ?>uploadify.swf',
          'script'    : '<?php echo $uploadifyPath ?>uploadify.php',
          'cancelImg' : '<?php echo $uploadifyPath ?>cancel.png',
          'auto'      : true,
          'folder'    : <?php echo $galleryPath ?>
      });
    });
  // ]]></script>

Как я могу с помощью jQuery получить значение идентификатора галереи и ввести его в свою функцию getGalleryURL()?

Или... есть ли лучший способ сделать это??


person Steven    schedule 21.11.2009    source источник
comment
Когда настала очередь jquery выполнить какую-то работу, запрос уже вернулся с сервера, и PHP уже выполнил свою работу. Как вы получаете 1620 в вводе GalleryID?   -  person Galen    schedule 21.11.2009
comment
GalleryID получает значение из jQuery, когда я использую автозаполнение в поле текстового поиска.   -  person Steven    schedule 21.11.2009


Ответы (3)


Вы не можете. Ваш PHP-код выполняется на веб-сервере. Затем код HTML/CSS/JS передается в браузер, где выполняется javascript.

Если вам нужна связь Javascript/PHP, вам придется использовать функциональность jQuery AJAX.

person fresskoma    schedule 21.11.2009
comment
Обратите внимание, как я использую PHP внутри тегов ‹script›. Так что я уже смешиваю два. - person Steven; 21.11.2009
comment
Нет, на самом деле это не так. Как я уже сказал, PHP выполняется на веб-сервере, а Javascript — в клиентском браузере, поэтому Javascript никогда не сможет определить, получено ли какое-то значение из функции PHP, или оно было жестко запрограммировано, или что-то еще. Вы действительно должны попытаться понять разницу между языками на стороне сервера и на стороне клиента, так как это ответит на все ваши вопросы по этому вопросу. - person fresskoma; 21.11.2009

Выполните вызов AJAX через jQuery, чтобы сообщить PHP идентификатор галереи, а затем используйте его обратный вызов для загрузки uploadify.

person Blair McMillan    schedule 21.11.2009

Полностью понял этот вызов, должен был понять это для проекта, над которым я сейчас работаю.

То, к чему я пришел, было более простым: отображать переменную в HTML перед сценарием, чтобы затем jQuery мог извлечь переменную из атрибута данных.

Я еще не тестировал приведенный ниже код, но я думаю, вы могли бы решить это с помощью чего-то подобного. Удачи!

<div class="marker" data-path="<?php echo get_bloginfo('url') . '/wp-content/plugins/uploadify/'; ?>" data-url="<?php echo getGalleryURL('1620'); ?>" style="display:none;"></div>

<input id="galleryID" type="hidden" value="1620" name="galleryID"/>
<input id="fileInput" name="fileInput" type="file" />


<script type="text/javascript">// <![CDATA[
    $(document).ready(function() {


      var path = $('.marker').data('path');
      var url = $('.marker').data('url');

      $('#selector').uploadify({
          'uploader'  : url + '/uploadify.swf',
          'script'    : url + '/uploadify.php',
          'cancelImg' : url + '/cancel.png',
          'auto'      : true,
          'folder'    : path
      });
    });

    // ]]>
</script>
person Design JG    schedule 15.06.2014