将JavaScript函数参数转换为php变量

将JavaScript函数参数转换为php变量,javascript,php,Javascript,Php,我有一个js函数,它通过php脚本传递一个要删除的文件ID。 我不知道如何将javascript参数从javascript转换为PHP变量 以下是我迄今为止所做的工作: <script> function deleteFile(file) { var r = confirm("Are you sure you want to delete this file?"); if (r === true) {

我有一个js函数,它通过php脚本传递一个要删除的文件ID。 我不知道如何将javascript参数从javascript转换为PHP变量

以下是我迄今为止所做的工作:

<script>
    function deleteFile(file)
    {
        var r = confirm("Are you sure you want to delete this file?");
        if (r === true)
        {
            <?php
            $idfile = file; // How to convert it??
            unlink(mysql_result(
               mysql_query("SELECT filepath FROM
                  file where idfile='$idfile'"), 0, 0))
               or die("Could not delete file");
            mysql_query("DELETE FROM file WHERE fileid=$idfile")
               or die("Cannot delete file");
            echo "File has been deleted successfully.";
            ?>
        }
    }
</script>

那不行。JavaScript和PHP是在不同时间执行的完全独立的实体

PHP是一种服务器端语言。PHP代码在服务器上执行,并向web浏览器返回响应

JavaScript是一种客户端语言。当用户在浏览器中与页面交互时,在执行PHP代码后执行


您需要编写一个单独的PHP脚本,该脚本使用要删除的文件的ID,然后使用AJAX发送带有指定文件ID的删除请求。

您不能在PHP中放入Javascript变量,但您可以使用AJAX发送
$ID\u file

$.ajax({
        url: "/action.php",
        method: 'POST',
        data: {
          id: file,
       }
}); 

然后在PHP操作中,您可以使用
$\u POST['id']
并进行查询。

最好使用AJAX,例如jQuery。这样,您创建的代码无法工作。试试这个

生成id为的按钮

<?php
  echo '<button class="delete_button" data-id="'.$id.'">delete me!</button>';
?>
Php


一个是服务器端,一个是客户端。没有转换它的方法。您必须调用服务器。您似乎对服务器端和客户端代码的工作方式感到困惑。服务器端代码无法知道客户端发生了什么,除非在构建页面时使用服务器上运行的ajax.PHP等技术告诉服务器端。PHP完成后,Javascript在客户端上运行。您不能将JS变量转换为PHP变量,因为PHP不再运行。您需要通过提交表单、跟随链接或使用AJAX向服务器发送一些内容。您应该熟悉AJAX(可能是jQuery),然后您会发现问题所在,也可以查看。您的
mysql
语句已被弃用。我还不知道什么是AJAX。我可以在删除之前先向用户显示confrim吗?怎么用?通过调用另一个页面
deletefile.php?id=303
,例如@user1234524521,您基本上可以用JavaScript代码替换
if
语句中的php代码,以向php脚本处理的删除文件的任何内容发出AJAX请求(类似于对服务器的常规请求,但不涉及页面重新加载)。像
deletefile.php?id=303
这样的东西可以工作,是的;您只需取出
id
参数,然后运行SQL删除该文件。这里有一个关于MDN上AJAX的介绍:这一行是否会将我重定向到
action.php
?是的,但是你需要这个函数。将$.ajax放入您的函数中。Php还可以返回消息。$。ajax({url://action.php),方法:'POST',数据:{id:file,}}).done(函数(数据){console.log(数据)}数据就是消息,您可以在中查看更多内容,还可以返回一个带有json的json。\u encode如何包含jQuery?浏览器控制台说:
ReferenceError:$未定义
您有jQuery?您可以下载或尝试code.jQuery.com/jQuery-1.10.1.min.js“>@user1234524521
$
来自jQuery。您的页面中是否包含对jQuery的引用?
$.ajax({
        url: "/action.php",
        method: 'POST',
        data: {
          id: file,
       }
}); 
<?php
  echo '<button class="delete_button" data-id="'.$id.'">delete me!</button>';
?>
<script type="text/javascript" src="/path/to/jquery.min.js">
<script type="text/javascript">

$(".delete_button").click(function() {
  var id = $(this).data("id");
  $.post( "handler.php",{del: id}, function( data ) {
     if(data)
      {
      alert("deleted successfully!");
      window.location = "/your/desired/url"; // redirect after success
      }
  }
});  </script>
if(array_key_exists("del", $_POST))
{
// delete in mysql
}
function deleteFile(file)
{
    var r = confirm("Are you sure you want to delete this file?");
    if (r === true)
    {   // doesn't go to deletefile.php
        $.ajax({
            url: "/deletefile.php",
            method: 'POST',
            data: {
                id: file
            }
        })
        .done(function( data ) {
         console.log(data);
       });
    }
}
<?php
    $idfile = $_POST['id']; // How to convert it??
    unlink(mysql_result(
       mysql_query("SELECT filepath FROM
          file where idfile='$idfile'"), 0, 0))
       or die("Could not delete file");
    mysql_query("DELETE FROM file WHERE fileid=$idfile")
       or die("Cannot delete file");
?>