onClick函数参数包含“。”

时间:2016-11-11 10:37:25

标签: javascript php html parameters onclick

我正在尝试创建一个表,其中包含表的“更改密码”列中项目的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;
?>

http://thomas-smyth.co.uk/admin/manageusers.php

1 个答案:

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

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