私のアプリケーションには、ユーザーが自分のプロファイルを非アクティブ化できるオプションがあります。管理者のみがそれらを再度アクティブ化できます。
ActivateProfile
私は2つのメソッドを持つクラスを持っています
userExist(userName)
そのuserNameを持つユーザーが存在し、そのプロファイルが非アクティブ化されているかどうかを確認します- そして
activateAccountByUser(userName)
、ユーザーのプロファイルを再度有効にします
入力タイプのボタンのクリック イベントで JavaScript 関数を呼び出します。このコードは Chrome と Mozilla では問題なく動作しますが、Internet Explorer では次のエラーが発生します。
SCRIPT438: オブジェクトはプロパティまたはメソッド userExist をサポートしていません
function activateProf() {
var userName=document.getElementById("userName").value;
if (userName == "") {
alert("Полето е задолжително");
} else {
alert(userName + "1");
ActivateProfile.userExist(userName, { callback:function(exist) {
if (userName) {
ActivateProfile.activateAccountByUser(userName);
alert("User is activated");
} else {
alert("User does not exist");
}
}});
}
}
これがActivateプロファイルクラスのコードです
public void activateAccountByUser(String userName) {
try {
Connection c = DBComm.getInstance().getConnection();
Statement s = c.createStatement();
ResultSet set = s.executeQuery("select * from accounts where userName = '" + userName + "' and isauthorized='2'");
if (set.next()) {
Statement st = c.createStatement();
st.executeUpdate("update accounts set isauthorized='1' where userName='" + userName + "' and isauthorized='2'");
}
s.close();
c.close();
} catch (Exception ex) {
java.util.logging.Logger.getLogger(ActivateProfile.class.getName()).log(Level.SEVERE, null, ex);
}
}
public boolean userExist(String userName) throws SQLException {
//true exist
//false does not exist
boolean existEmbg = false;
try {
Connection c = DBComm.getInstance().getConnection();
Statement s = c.createStatement();
ResultSet set = s.executeQuery("select * from accounts where userName = '" + userName + "' and isauthorized='2'");
if (set.next()) {
existEmbg = true;
} else {
existEmbg = false;
}
s.close();
c.close();
} catch (Exception ex) {
java.util.logging.Logger.getLogger(ActivateProfile.class.getName()).log(Level.SEVERE, null, ex);
}
return existEmbg;
}