我想在PHP中调用参数化函数。我正在使用AJAX。
这是我的动态按钮。我需要将$sub_id
传递给delet(sub_id)
函数并执行一些SQL。
echo "<td><input type='submit' name='disable' value='Disable' onClick='delet($sub_id);'/></td>";
到目前为止,这是我的脚本:
<script>
function delet(sub_id) {
alert("sub ID = " + sub_id);
jQuery.ajax({
type: 'GET',
url: '/my_page',
data: {
ID: sub_id
}
}).done(function(msg) {
alert("Data Saved: " + msg);
});
}
</script>
这是PHP函数:
function delet($ID){
echo $ID;
//do sql stuff...
}
所有代码都在一个文件中,我在wordpress默认模板swentysixteen中执行此操作。所以我的页面没有.php扩展名。
当我点击动态按钮时,我在ajax的url参数中收到 404错误。当我看到控制台时,网址链接似乎是正确的。
请帮我解决这个问题。感谢。
答案 0 :(得分:2)
首先,不要将JS代码和PHP代码结合在一起。
请记住,JS代码是在浏览器上执行的,服务器是通过PHP提供的。 PHP代码在服务器端执行,并提供HTML代码作为客户端(浏览器)的输出。所以JS变量和PHP变量没有直接或间接的任何关系。
对于您的解决方案,
您已通过ajax使用GET传递了ID参数。所以在SErver方面,您将获得$_GET['ID']
变量中的数据,因此ID将通过function delete($ID){
echo $ID;
//do sql stuff...
}
if(isset($_GET['action']) && $_GET['action']=="delete")
{
if(isset($_GET['ID']) && !empty($_GET['ID']))
{
delete($_GET['ID']);
echo "deleted successfully";
}
else
{
echo "ID not passed for delete record";
}
die(); // you stop execution of PHP after delete opration here
}
<script>
function delet(sub_id) {
jQuery.ajax({
type: 'GET',
url: '/my_page',
data: {
action: 'delete',
ID: sub_id
}
}).done(function(msg) {
alert("Data Saved: " + msg);
});
}
</script>
Javascript代码
{{1}}