Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/470.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/227.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在javascript代码中使用php函数_Javascript_Php - Fatal编程技术网

在javascript代码中使用php函数

在javascript代码中使用php函数,javascript,php,Javascript,Php,我想从javascript代码中运行php函数,更具体地说,我得到了一个从数据库中删除记录的按钮。执行该操作的函数名为 delete_post($id) 以下是我尝试过的: <input type="submit" name="delete" value="delete" onClick="if(confirm('Are you sure?')) {<?php delete_post($row['id']);?>}"> 你不能。PHP应该在页面加载之前运行,因此命名

我想从javascript代码中运行php函数,更具体地说,我得到了一个从数据库中删除记录的按钮。执行该操作的函数名为

delete_post($id)
以下是我尝试过的:

<input type="submit" name="delete" value="delete" 
onClick="if(confirm('Are you sure?')) {<?php delete_post($row['id']);?>}">

你不能。PHP应该在页面加载之前运行,因此命名为Pre-Hypertext Protocol。如果希望在页面通过JavaScript加载后运行PHP,最好的方法是链接到运行PHP的新页面,然后返回用户

file1.php:

...
<input type="submit" name="delete" value="delete" onClick="if(confirm('Are you sure?')) document.location.href='file2.php';">
...
<!doctype html>
<html>
<head>
<?php
delete_post($row['id']);
?>
<meta http-equiv="refresh" content="0; url=file1.php" />
</head>
<body>
<p>You will be redirected soon; please wait. If you are not automatically redirected, <a href="file1.php">click here</a>.</p>
</body>
</html>

但是不要将PHP代码直接放入查询字符串中,否则您的站点可能会受到影响,而您不能。PHP应该在页面加载之前运行,因此命名为Pre-Hypertext Protocol。如果希望在页面通过JavaScript加载后运行PHP,最好的方法是链接到运行PHP的新页面,然后返回用户

file1.php:

...
<input type="submit" name="delete" value="delete" onClick="if(confirm('Are you sure?')) document.location.href='file2.php';">
...
<!doctype html>
<html>
<head>
<?php
delete_post($row['id']);
?>
<meta http-equiv="refresh" content="0; url=file1.php" />
</head>
<body>
<p>You will be redirected soon; please wait. If you are not automatically redirected, <a href="file1.php">click here</a>.</p>
</body>
</html>

但是不要将PHP代码直接放入查询字符串中,否则您的站点可能会受到

的影响。您不能在Javascript中运行PHP代码,但可以通过JS/Ajax调用它。为了获得良好的实践,请拆分php和JS,例如,创建一个带有ID并删除其行的页面(我猜您使用REST)并通过JS调用它


更干净、有效、更安全

您不能在Javascript中运行php代码,但可以通过JS/Ajax调用它。为了获得良好的实践,请拆分php和JS,例如,创建一个带有ID并删除其行的页面(我猜您使用REST)并通过JS调用它


更干净、有效、更安全

根据您的问题,我建议您尝试一下jquery

链接到页面标题部分的Jquery

这是你的js函数

function deleteRow(id)
{
 var url='path/to/page.php';
 $("#loading_text").html('Performing Action Please Wait...');
 $.POST(url,{ row_id: id } ,function(data){  $("#loading_text").html(data) }); 
}
这应该对你有用

由于是删除,我使用的是
$。如果您发现任何其他问题,请发布

这里有一个到谷歌CDN托管的jQuery的链接
//ajax.googleapis.com/ajax/libs/jquery/1.7/jquery.js

这就是表单的外观

<form>
<label for="Number"></label>
<input type="text" name="some_name" id="some_id" value="foo bar">
<input type="submit" name="delete" value="delete" 
onClick="javascript: deleteRow(the_id_of_the_row);">
</form>
<br>
<div id="loader_text"></div>


现在,执行删除操作的php页面可能如下所示

<?php
 $row_id = some_sanitisation_function($_POST['row_id']) //so as to clean and check user input
 delete_post($row_id);
 echo "Row deleted Successfully"; //success or failure message
?>


这应该能帮到你。

根据你的问题,我建议你试试jquery

链接到页面标题部分的Jquery

这是你的js函数

function deleteRow(id)
{
 var url='path/to/page.php';
 $("#loading_text").html('Performing Action Please Wait...');
 $.POST(url,{ row_id: id } ,function(data){  $("#loading_text").html(data) }); 
}
这应该对你有用

由于是删除,我使用的是
$。如果您发现任何其他问题,请发布

这里有一个到谷歌CDN托管的jQuery的链接
//ajax.googleapis.com/ajax/libs/jquery/1.7/jquery.js

这就是表单的外观

<form>
<label for="Number"></label>
<input type="text" name="some_name" id="some_id" value="foo bar">
<input type="submit" name="delete" value="delete" 
onClick="javascript: deleteRow(the_id_of_the_row);">
</form>
<br>
<div id="loader_text"></div>


现在,执行删除操作的php页面可能如下所示

<?php
 $row_id = some_sanitisation_function($_POST['row_id']) //so as to clean and check user input
 delete_post($row_id);
 echo "Row deleted Successfully"; //success or failure message
?>



这应该可以为您做到。

PHP在客户端上运行服务器JS。JS需要使用AJAX与服务器对话,以便删除记录(除非发布表单,然后再次加载页面)。请考虑安全行ID是不安全的。避免安全漏洞的最好方法是JS/AJAX……拆分代码并有一个分离的JS和PHP文件……如果你需要帮助,请告诉我……会让你振作起来。answer@VyrenMedia我确实需要帮助,以前从未使用过ajax。@ImriPersiado我添加并回答check out.PHP在客户端上运行服务器JS。JS需要使用AJAX与服务器对话,以便删除记录(除非发布表单,然后再次加载页面)。请考虑安全行ID是不安全的。避免安全漏洞的最好方法是JS/AJAX……拆分代码并有一个分离的JS和PHP文件……如果你需要帮助,请告诉我……会让你振作起来。answer@VyrenMedia我确实需要帮助,以前从未使用过ajax。@ImriPersiado我添加并回答了检查它。回答得好,但我必须指出,PHP现在代表“PHP:Hypertext Processor”(过去代表PHP工具名称中的“个人主页”),顺便说一句,这种方式存在一个很大的安全漏洞。。每个人都可以加载exmaple.com/fil2.php?id=x,他们可以将x更改为他们想要删除的每个id。@11684您可以从AJAX获取数据,但由于JavaScript运行客户端,因此您无法编辑XML。不过,AJAX调用调用的php可以做到这一点@USER7210510310410210511810133回答得好,但我必须指出,PHP现在代表“PHP:Hypertext Processor”(用于代表PHP工具名称中的“个人主页”)。顺便说一句,在这方面存在一个很大的安全漏洞。。每个人都可以加载exmaple.com/fil2.php?id=x,他们可以将x更改为他们想要删除的每个id。@11684您可以从AJAX获取数据,但由于JavaScript运行客户端,因此您无法编辑XML。不过,AJAX调用调用的php可以做到这一点@User7210510310410210511810133@ImriPersiado我希望你处理数据库连接。我不知道你的表是如何设置的,也不知道你的连接是如何完成的……从你的问题中,我看到了一个php函数
delete\u post($id)
我相信你已经在函数中涵盖了所有内容……你所要做的就是包含有该函数的文件,或者你没有定义你的
delete\u post($row\u id)
功能是否正常?。如果是这样,请告诉我,我将指导您如何操作。没问题……希望您的问题现在得到解决@ImriPersiado@ImriPersiado我希望你处理数据库连接。我不知道你的表是如何设置的,也不知道你的连接是如何完成的……从你的问题中,我看到了一个php函数
delete\u post($id)
我相信你已经在函数中涵盖了所有内容……你所要做的就是包含有该函数的文件,或者你没有定义你的
delete\u post($row\u id)
功能是否正常?。如果是这样,请告诉我,我将指导您如何操作。没问题……希望您的问题现在得到解决。@ImriPersiado