我正在尝试创建一个表,其中包含表的“更改密码”列中项目的onClick函数,以便我的系统管理员可以更改每个人的密码。
每个onClick调用“ChangePassOpen”函数,该函数打开一个带有新密码输入框的模态,另一个按钮实际调用该函数来更改密码。
为了让我的程序识别管理员正在更改的帐户,我需要将用户名作为参数传递,但我的用户名包含“。”因为它们由姓氏和姓氏组成,如“T.Smyth”。但是,这会导致错误,因为程序认为我正在尝试传递两个参数,因此它会引发错误。
有关如何克服这一点的任何想法?
<?php
//Retrieves variables from Javascript.
$Search = $_POST["Search"];
$Type = $_POST["Type"];
if ($Type == "Registration Date"){
$Type = "joined";
}
else if ($Type == "Account Rank"){
$Type = "rank";
}
include "db/openlogindb.php";
if($DBError == true){
$data = 3;
}
else{
$UserSearch = "SELECT username, surname, forename, joined, rank FROM users
WHERE ".$Type." LIKE '%".$Search."%'
ORDER BY surname";
$results = mysqli_query($conn, $UserSearch);
if(mysqli_num_rows($results) == 0){
$data = 1;
}
else{
$data = '';
while($row = mysqli_fetch_assoc($results)){
$data .= '<tr><td>'.$row['surname'].'</td><td>'.$row['forename'].'</td><td>'.$row['username'].'</td><td>'.$row['joined'].'</td><td>'.$row['rank'].'</td><td onClick="ChangePassOpen('.$row['username'].')">Change Password</td></tr>';
}
}
}
include "db/closelogindb.php";
echo $data;
?>
答案 0 :(得分:1)
您应该更新代码
echo '<table><tr><td>'.$row['surname'].'</td><td>'.$row['forename'].'</td><td>'.$row['username'].'</td><td>'.$row['joined'].'</td><td>'.$row['rank'].'</td><td onClick="ChangePassOpen(\''.$row["username"].'\')">Change Password</td></tr></table>';
反斜杠字符()被视为转义字符。