私は ajax が初めてで、自分のプロジェクトに入れるのは楽しい実験になると思っていました。作成中の Web サイトでメッセージを送信するために、独自のライトボックス タイプの機能を作成しました。ユーザーが「メッセージを送信」をクリックすると、ライトボックスが表示され、上部に「ユーザーにメッセージを送信」と表示させようとしています。ここで、ユーザーはメッセージを送信しているユーザーの名前です. 私のライトボックスの HTML 要素は、実際には別の Web ページにあるため、ajax を使用しています。これは私がこれまでに持っているものであり、問題が何であるかを理解できないようです:
user.php ページ
<div id = "pageMiddle"> // This div is where all the main content is.
<button onclick = "showMessageBox(UsersName)">Send Message</button>
</div>
注:ユーザー名はjavascript関数に正しく渡されます。私はそれをチェックしました。
main.js ページ
function showMessageBox(user){
alert(user); // where i checked if username passes correctly
var ajaxObject = null;
if (window.XMLHttpRequest){
ajaxObject = new XMLHttpRequest();
}else if (window.ActiveXObject){
ajaxObject = new ActiveXObject("Microsoft.XMLHTTP");
}
if (ajaxObject != null){
ajaxObject.open("GET", "message_form.php", true);
ajaxObject.send("u="+user);
}else{
alert("You do not have a compatible browser");
}
ajaxObject.onreadystatechange = function(){
if (ajaxObject.readyState == 4 && ajaxObject.status == 200){
document.getElementById("ajaxResult").innerHTML = ajaxObject.responseText;
// use jquery to fade out the background and fade in the message box
$("#pageMiddle").fadeTo("slow", 0.2);
$("#messageFormFG").fadeIn("slow");
}
};
}
message_form.php ページ
<div id = "messageFormFG">
<div class = "messageFormTitle">Sending message to <?php echo $_GET['u']; ?></div>
</div>
注: URL から直接このページにアクセスし、パラメーター u と値を指定すると、正しく表示されます