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

时间:2014-02-11 14:15:23

标签: javascript php

我有一个js函数,通过php脚本传递一个fileid来删除。 我不知道如何将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>

我还有一个按钮:

echo "<button onclick=\"deleteFile($fileid)\">Delete</button>";

更新

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
            }
        });
    }
}

enter image description here

4 个答案:

答案 0 :(得分:5)

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

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

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

您需要编写一个单独的PHP脚本来获取要删除的文件的ID,然后使用AJAX发送请求以使用指定的文件ID删除它。

答案 1 :(得分:3)

你不能在PHP中放置一个Javascript变量,但是你可以让AJAX发送$id_file

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

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

答案 2 :(得分:3)

最好使用AJAX作为例子与jQuery。您创建的代码无法正常工作。试试这个。

生成ID为

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

here下载jQuery,将其保存到项目文件夹中。

使用jQuery发送帖子请求

<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>

在handler.php中删除

if(array_key_exists("del", $_POST))
{
// delete in mysql
}

答案 3 :(得分:1)

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");
?>

不会去deletefile.php?也许网址不正确