将JavaScript函数参数转换为php变量
我有一个js函数,它通过php脚本传递一个要删除的文件ID。 我不知道如何将javascript参数从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) {
<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");
?>