onClick包含";的功能参数

onClick function parameter containing "."

本文关键字:参数 功能 quot 包含 onClick      更新时间:2023-09-26

我试图创建一个表,其中包含一个onClick函数,用于表的Change Password列中的项目,以便我的系统管理员可以更改每个人的密码。

每个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;
?>
http://thomas-smyth.co.uk/admin/manageusers.php

你应该更新你的代码

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>';

反斜杠字符()被认为是转义字符。