我有一个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
}
});
}
}
答案 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?也许网址不正确