2015-04-25 3 views
0

Я хочу показать результат PHP-скрипта на теге div без обновления страницы. У меня есть список .c файлов (пользователи могут скомпилировать их на сервере) ...Как передать значение функции JS, а затем в PHP-скрипт

<option value="" selected="selected">Choose file </option>'; 

        $dirPath = dir('directoryExample'); 
        while (($file = $dirPath->read()) !== false) 
         { 
          if ($file == '.' || $file == '..') continue; 
          echo "<option value=\"" . trim($file) . "\">" . $file . "\n"; 
         } 
        $dirPath->close(); 
        echo '</select> 

... и два DIV и кнопку, как это:

<div id="2" style="display:none;"> </div> 
<div id="1" style="display:visible;"> Compile...</div> 
<button type="button" onclick="codiad.ccomp.compile(this.value);">Compile</button> 

Первый вопрос: Как могу ли я передать выбранный файл функции JQuery? Это значение отлично работает?

Это функция Jquery:

compile: function(value) { 

      if(($('#1').css('display')!='none')){ 
        $('#2').load(this.path+'\compile.php').show().siblings('div').hide(); 
      }else if($('#2').css('display')!='none'){ 
        $('#1').show().siblings('div').hide(); 
       } 

    } 

код работает нормально, но это второй вопрос: как я могу передать теперь значение PHP страницы?

Заранее благодарен!

ответ

2

Вы можете передать аргумент данных .load().

$('#2').load(this.path+'/compile.php', { file: $("#selectID").val() }) 
    .show().siblings('div').hide(); 

В PHP скрипт, используйте $_GET['file'] для получения выбранного файла.

0

Я не думаю, что в вашем первом вопросе this.value будет работать нормально, так как this относится к кнопке, а не к элементу select.

Вместо этого вам нужно будет что-то вроде:

$('#your_select_element').val(); 

И вы можете удалить встроенный яваскрипта и использовать что-то вроде:

$('button').on('click', function() { 
    // do something with `$('#your_select_element').val();` 
    ... 
} 

Предполагая, что есть одна кнопка, вам может понадобиться добавить класс или ID, чтобы обратиться к нему конкретно.

И как уже упоминалось в другом ответе, вы можете добавить параметр данных в свою .load().

Смежные вопросы