Как получить доступ к методам PHP внутри Javascript? - PullRequest
0 голосов
/ 26 января 2010

Я сделал метод, который удалит файл. Сначала я передаю URL этого файла. как это

echo "<a href='$fulr'>$filename</a>";

Теперь я хочу вызвать функцию deletefile($file); как я могу сделать это так

echo "<a onclick='$this->deletefile($filename)' href='$fulr'>$filename</a>";

это вообще возможно?

Или как я могу реализовать что-то похожее в коде php?

Ответы [ 7 ]

7 голосов
/ 26 января 2010

У вас неправильное представление о связи между браузером и сервером. Вам нужно либо сделать:

<?php
...
printf("<form name=\"delfilefrm\" action=\"delfile.php\" method=\"POST\">
        <input type=\"hidden\" name=\"delfile\" value=\"%s\" />
        <input type=\"submit\" value=\"Delete %s\" />
    </form>", $filename, $filename);
...
?>

На сервере, чтобы ссылка шла на скрипт на сервере или использовала JavaScript. Я бы порекомендовал использовать функцию jQuery post () или аналогичную функцию AJAX:

$.post("delfile.php", { file: \"$filename\" } );

Помните: безопасность, охрана, безопасность ... затем постепенная деградация

И спасибо waiwai933, Дэвиду Дорварду за то, что он позволил мне «увидеть лес за деревьями» в фундаментальной точке, быстро забытой.

1 голос
/ 26 января 2010

Вы можете сделать это:

php: давайте назовем это deletefile.php

<?
$file = $_POST['filename'];

deletefile($file);
?>

JQuery:

$('a').click(function(){
   $.ajax({
      method: 'POST',
      url: 'deletefile.php',
      data: "filename=" + $(this).text(),
      success: function(data) {
        alert('File deleted.');
      }
   });
   return false;
});

HTML:

<a href="#" >filename<a/>  <!-- filename is the name of your file... -->
1 голос
/ 26 января 2010

Вы не можете сделать это таким образом, потому что javascript не может выполнить код php, и вы не можете удалить файл с javascript, поэтому я думаю, что вы должны сделать что-то вроде этого:

if(isset($_GET['delete'])) unlink($_GET['delete']);
....
echo "<a href='".__FILE__."?delete=$fulr'>$filename</a>";
1 голос
/ 26 января 2010

Вы не можете вызвать код PHP из своего Javascript.

То, что вы МОЖЕТЕ сделать, (при условии, что это происходит на веб-сервере) поместить GET / POST в скрипт PHP, передавая все необходимые параметры, для выполнения правильного метода PHP.

В PHP это немного проще. Если вы выплевываете HTML, вы можете добавить узел сценария, чтобы вызвать функцию Javascript (или просто запустить Javascript).

1 голос
/ 26 января 2010

В этом случае PHP запускается на веб-сервере и отправляет некоторые выходные данные в браузер.

Затем браузер обрабатывает этот вывод как JavaScript.

Нет прямого доступа к PHP. Вы должны отправить HTTP-запрос обратно на сервер.

Это может быть простая ссылка (но не делайте этого для операции удаления файла, операции GET должны быть безопасными (иначе бот будет ходить по вашему сайту и удалять все), форму или, если вы действительно хотите задействовать JavaScript - XHR (или какой-либо другой объект, который можно использовать для выполнения Ajax). Библиотеки, такие как YUI или jQuery , могут помочь вам с тяжелой работой здесь.

В любом случае (форма или Ajax) вы, вероятно, в конечном итоге добавите данные о том, какой файл вы хотите удалить, в данные POST. Ваш PHP-скрипт прочитает это (из $_POST и вызовет нужную вам функцию).

… и если вы пойдете по маршруту Ajax, не забудьте опираться на то, что работает .

0 голосов
/ 26 января 2010

Если вы хотите вызывать функции PHP из Javascript, то это примерно как можно ближе: http://www.phplivex.com/

Я много раз пользовался этой библиотекой, и она мне действительно нравится.

0 голосов
/ 26 января 2010

Вы не можете вызвать код PHP из своего Javascript.

но вы можете использовать xajax для этого

или проверьте этот пост . это будет лучшее решение, используя ajax

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...