2014-11-25 2 views
0

В моем файле PHP у меня есть переменная $file = "abc". Как создать кнопку в HTML для запуска функции в PHP, проходящей в $ file в качестве аргумента? Я видел, что мне нужно сделать это с помощью jQuery/AJAX. Ради простоты, давайте просто скажем, что я хочу эхо-файл.PHP аргумент аргумента в Ajax

HTML/JS

<script type="text/javascript" src="http://code.jquery.com/jquery-2.1.1.js"></script> 
<input type="submit" class="button" name="Del" value="Del" /> 
<script type="text/javascript"> 
$(document).ready(function(){ 
    $('.button').click(function(){ 
     var clickBtnValue = $(this).val(); 
     var ajaxurl = 'ajax.php', 
     data = {'action': clickBtnValue}; 
     $.post(ajaxurl, data, function (response) { 
      console.log(response); 
      //alert("action performed successfully"); 
     }); 
    }); 

}); 
</script> 

ajax.php

<?php 
if (isset($_POST['action'])) { 
    Del(); 
} 

function Del($file) { 
    echo $_POST['action']; 
    echo $file; 
    exit; 
} 
?> 

Я не уверен в том, как изменить это, чтобы передать в PHP аргумент ($ файл) через AJAX.

+0

Где "файл" приходит? Это текстовое поле в форме? Это переменная в PHP? Вы заявляете, что это в PHP, а это означает, что нет смысла помещать его в клиент и возвращать его. –

+0

$ file - это переменная PHP, которую я установил раньше, чем я запустил пост ajax. Я хочу передать $ file в мою функцию Del(). Для тестирования я просто хочу повторить его и посмотреть, могу ли я увидеть его в console.log – Bijan

+0

Вы имеете в виду раньше, чем ваш isset в ajax.php? –

ответ

2

В вашем HTML/JS:

data = {'action': clickBtnValue, 'file' : '<?php echo $file?>'}; 

В вашем ajax.php:

if (isset($_POST['action'])) { 
    Del($_POST['file']); 
} 

Это очень простой пример, но вы, вероятно, можете адаптировать его к вашим потребностям. Обратите внимание, что с этим подходом существует тонна потенциальных последствий для безопасности, в зависимости от того, что вы на самом деле делаете, поэтому будьте осторожны и очищайте любой вход в $ _POST.

+2

Смешивание php и jquery kinda пропустить точку AJAX – meda

+0

Там мы идем. Моя проблема была в том, что я не завернул '' В одинарных кавычках. – Bijan

0

Возможно, вы можете передать значение в <span id="myFile"></span>, которое вы могли бы поставить прямо перед закрывающим тегом </body>, а затем использовать jQuery для получения значения, а затем удалить его сразу после. Я не говорю, что это лучший или безопасный подход, но он работал в прошлом для меня с простыми вещами.

HTML

... 
    <span id="myFile"><?php echo $file; ?></span> 
</body> 
    ... 

JS

$(document).ready(function(){ 

    $('.button').click(function(){ 

     //Get the text and remove it 
     var myFile = $("#myFile").text(); 
     $("#myFile").remove(); 

     var clickBtnValue = $(this).val(); 
     var ajaxurl = 'ajax.php', 
     data = {action: clickBtnValue, file: myFile}; 
     $.post(ajaxurl, data, function (response) { 
      console.log(response); 
      //alert("action performed successfully"); 

      //Append it back in case you need to use it again. Optional 
      $("body").append("<span id='myFile'></span>"); 
     }); 
    }); 
}); 

я взял в кавычки прочь action.

PHP

<?php 
    if (isset($_POST['action'])) { 
     Del($_POST['file']); 
    } 

    ... 
?> 
Смежные вопросы