Ajax将php变量作为参数传递给javascript函数
我的数据库中有三个表:Ajax将php变量作为参数传递给javascript函数,javascript,php,jquery,ajax,Javascript,Php,Jquery,Ajax,我的数据库中有三个表:Person(id,name,last\u name)、System(id,name)、PersonInSystem(id,Person\u id,System\u id)。最后一个用于将个人与系统链接 我使用这样显示数据库中的每个人 echo '<option value="'.$queryResult["id"].'">'.$queryResult["name"].' '.$queryResult["last_name].'</option>';
Person(id,name,last\u name)、System(id,name)、PersonInSystem(id,Person\u id,System\u id)
。最后一个用于将个人与系统链接
我使用
这样显示数据库中的每个人
echo '<option value="'.$queryResult["id"].'">'.$queryResult["name"].' '.$queryResult["last_name].'</option>';
现在,如果我想取消对给定系统中的人员的分配,我想单击drop.gif图像并触发deleteSystem(value)
函数,该函数将发送查询DELETE from PersonInSystem,其中system\u id=system\u id\u SENT和person\u id=person\u id\u SENT
,但我无法传递值,我也不知道如何传递(我是Ajax新手)
我可以将个人id存储在会话变量中,但我不知道如何发送系统id,也不想将数据发送到另一个页面
另外,我想用更改的系统分配刷新页面(应显示同一个人)。如下更改代码。
应该行得通
<img src="drop.gif" onclick="deleteSystem('<?php echo $systemAssignedToPerson;?>')">
“>
如下更改代码。
应该行得通
<img src="drop.gif" onclick="deleteSystem('<?php echo $systemAssignedToPerson;?>')">
“>
您的deleteSystem JavaScript函数需要向服务器发送以下类型的请求: (示例:用于取消分配的处理程序文件) (示例:通用处理程序文件) 在unassign.php中:
$systemId = $_GET["systemID"];
$personId = $_GET["personID"];
/* Your SQL stuff here -
statement something like
DELETE FROM PersonInSystem WHERE person_id = "$personId" AND system_id = "$systemId" */
改进:
*使用类似Prototype(老式、轻量级)或jQuery(更重)的javascript库来处理Ajax内容
*使用$\u POST和POST变量而不是$\u GET
*使用库正确引用SQL语句
*关心html特殊字符和正确的输入验证/过滤您的deleteSystem JavaScript函数需要向服务器发送以下类型的请求: (示例:用于取消分配的处理程序文件) (示例:通用处理程序文件) 在unassign.php中:
$systemId = $_GET["systemID"];
$personId = $_GET["personID"];
/* Your SQL stuff here -
statement something like
DELETE FROM PersonInSystem WHERE person_id = "$personId" AND system_id = "$systemId" */
改进:
*使用类似Prototype(老式、轻量级)或jQuery(更重)的javascript库来处理Ajax内容
*使用$\u POST和POST变量而不是$\u GET
*使用库正确引用SQL语句
*关心html特殊字符和正确的输入验证/过滤我认为您需要对服务器进行本机javascript函数调用
function deleteSystem(value){
var deleteflag=confirm("Are you sure to delete?!!");
if(deleteflag){
//setup your request to the server
window.location='delete.php?SYSTEM_ID_SENT='+value
}
}
在delete.php文件中,可以通过这种方式发送系统ID
$id=$_GET['SYSTEM_ID_SENT'];
$personid=$_SESSION['your session variable name'];
// run your delete query
$delqry=mysql_query("");
if($delqry){
//redirect to the page you want
header('location:yourpage.php');
}
我认为您需要对服务器进行本机javascript函数调用
function deleteSystem(value){
var deleteflag=confirm("Are you sure to delete?!!");
if(deleteflag){
//setup your request to the server
window.location='delete.php?SYSTEM_ID_SENT='+value
}
}
在delete.php文件中,可以通过这种方式发送系统ID
$id=$_GET['SYSTEM_ID_SENT'];
$personid=$_SESSION['your session variable name'];
// run your delete query
$delqry=mysql_query("");
if($delqry){
//redirect to the page you want
header('location:yourpage.php');
}
我想给你一个答案,但我已经在你的代码中发现了一些基本问题。在
PHP
的while循环:
中输出一个静态id
。因此,您的html将无效(每个id每页只能显示一次),并且您的javascript无法区分隐藏字段的不同值(因为它们都具有相同的“id”)。我想给您一个答案,但我已经在您的代码中发现了一些基本问题。在PHP
的while循环:
中输出一个静态id
。因此,html将无效(每个id每页只能显示一次),javascript无法区分隐藏字段的不同值(因为它们都具有相同的“id”)。