gpt4 book ai didi

php - 验证未出现

转载 作者:行者123 更新时间:2023-11-28 10:02:12 24 4
gpt4 key购买 nike

我有两个问题。第一个问题是,它会出现一条通知,指出 roomChosen 未定义,这是一个 php 错误,其次,如果文本框中的房间号与数据库中的房间号不匹配,它不会显示 javascript 错误。

请查看此处的应用程序:application

在 courseId 文本框中输入“info101”,然后单击“提交”。您将在页面中看到所有功能。在底部,您将看到一个“准备问题”按钮,单击它,您将看到所有验证消息,包括下面的空房间文本框。现在输入一个房间号,例如 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 的答案之一的编辑:

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

最佳答案

1) 您需要检查是否 $_POST['roomChosen'] isset()在尝试使用它之前。

2)尝试:

roomTextO.getAttribute("roomthere") != 1;

关于php - 验证未出现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8986649/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com