私には2つの問題があります。最初の問題は、roomChosenが定義されていないこと、PHPエラーであること、テキストボックスの部屋番号がデータベース内の部屋番号と一致しない場合にjavascriptエラーを表示しないという通知が出されることです。バリデーションが表示されない
ここでアプリケーションを見てください:application
はcourseIdテキストボックスに「info101」を入力し、[送信]をクリックします。ページ内のすべての機能が表示されます。下部に「Prepare Questions」ボタンがあり、それをクリックすると下の空のテキストボックスを含むすべての検証メッセージが表示されます。今度はデータベースにないので、再度「Prepare Questions」ボタンをクリックすると、42のような部屋番号を入力すると、部屋が有効ではないというメッセージは表示されません。
なぜ機能しないのですが、どうして上に表示される通知が表示されるのですか?部屋のテキストボックスの
JavaScript検証:部屋のテキストボックスの値が値と一致するかどうかを確認しようとしているの
function validation() {
var isDataValid = true;
var roomTextO = document.getElementById("room");
var errRoomMsgO = document.getElementById("roomAlert");
if (roomTextO.value == "") {
errRoomMsgO.innerHTML = "Please Enter in a Room Number";
isDataValid = false;
} else if (!trimmedRoomText.length) {
errRoomMsgO.innerHTML = "Please Enter in a Room Number";
isDataValid = false;
//above is if room textbox is empty
} else if(roomTextO.getAttribute("roomthere") == false) {
errRoomMsgO.innerHTML = "This Room is Invalid";
//above is if room number in textbox does not match database, which at moment it isn't working
} else {
errRoomMsgO.innerHTML = "";
}
return isDataValid;
}
PHPコード
以下は、それが内に表示され、正しい順序で、関連するコードを示しています以下は、データベース内の
<?php
$username="xxx";
$password="xxx";
$database="mobile_app";
$room_there = true;
$roomresult = mysql_query("SELECT Room FROM Room WHERE Room = " . (int) $_POST['roomChosen']);
if (isset($_POST['roomChosen'])) {
$roomresult = mysql_query("SELECT Room FROM Room WHERE Room = " . (int) $_POST['roomChosen']);
} else {
$room_there = false;
}
if(mysql_num_rows($roomresult) == 0) $room_there = false;
?>
ルームテキストボックスのHTML形式であり、タグ
にあるボタンを提出最後に、以下の<p><input type="text" id="room" name="roomChosen" roomthere="<?php echo $room_there; ?>" />
//message displayed if room number is in database or not
<br/><span id="roomAlert"></span></p>
// submit button
<p><input class="questionBtn" type="button" value="Prepare Questions" name="prequestion" onClick="myClickHandler()"/></p>
それがクリックされた後、送信ボタン用のjavascriptハンドラである:
以下function myClickHandler(){
if(validation()){
showConfirm(); // this is a function for a confirmation box
}
}
は私がISSETを使用しています方法については、以下の答えの1の編集です:
if ($_POST['roomChosen'] [isset()]){
$roomresult = mysql_query("SELECT Room FROM Room WHERE Room = " . (int) $_POST['roomChosen']);
if(mysql_num_rows($roomresult) == 0) $room_there = false;
}
新しい質問を作成しないでください。代わりにこれを更新して編集してください。 – hugomg