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”)。