如果房间有效,它不会显示消息

时间:2012-01-26 08:36:05

标签: php javascript jquery ajax json

请查看此create_session.php应用程序:Application

当您打开应用程序时,您将看到一个CourseId文本框。在文本框中键入“info101”,然后单击“提交”。

它应显示以下所有功能。不要输入任何内容,单击底部的“准备问题”按钮。你应该看到很多红色消息。这是验证,说明您需要为每个表单输入执行的操作。

现在填写所有功能,但对于“房间”文本框,请输入“CN10 / 10”。这是一个不正确的值。填写完所有详细信息后,单击“准备问题”按钮,所有红色消息都应该去,但它应该在“房间”文本框下显示一条消息,因为值不正确,但没有消息被显示。它应显示消息“此房间无效”。

现在,如果您在“房间”文本框“CW5 / 10”中键入正确的值并单击“准备问题”按钮,那么它应该不显示任何消息(因为我认为它没有使用Json正确),但也应该出现一个确认框,但这也不会发生。

所以我的问题是,为什么它没有做为房间文本框做的事情。为什么房间文本框中没有显示消息,并且正确输入所有功能后,为什么没有显示确认框?

以下是相关代码(不是完整代码,只是重要代码)

   function postback(callback){
        if(validation()){
            $.getJSON(
       '/u0867587/Mobile_app/create_session.php',
                {"room_no":$("#room").val()},
                function(json){
                    $("#roomAlert").html(json.msg);
                    callback(json.msg);
            });
        }
    } // should show message from php if room is valid or not

                 function showConfirm(){

             var confirmMsg=confirm("Make sure that your details are correct, once you proceed after this stage you would not be able to go back and change any details towards your Session." + "\n" + "\n" + "Are you sure you want to Proceed?" + "\n" );

             if (confirmMsg==true)
             {
             submitform();   
         }
    }

<form action="QandATable.php" method="post" id="sessionForm">

<p><strong>10: Room:</strong> <input type="text" id="room" name="roomChosen" value="<?php echo $roomChosen; ?>" />
<br/><span id="roomAlert"></span></p>      <!-- Enter Room here-->    

<p><strong>11: </strong><input class="questionBtn" type="submit" value="Prepare Questions" name="prequestion" onClick="myClickHandler(); return false;"/></p>  
</form>

<?php

if (isset($_POST['prequestion'])) {
    $roomquery = "
                 SELECT Room
                 FROM Room
                 WHERE
                 (Room = '".mysql_real_escape_string($roomChosen)."')
                 ";

    $roomnum = mysql_num_rows($roomresult = mysql_query($roomquery));
    mysql_close();

    if($roomnum ==0){
        $msg = "This Room is Invalid";
    } else {

        $msg = "";
    }

    $d = array("msg" => $msg);
echo json_encode($d);

} // checks to see if room value in textbox matches any value in database or not

?>

         <script type="text/javascript">

function myClickHandler(){ 
     if(validation()){ 
        postback(function(message) { 
            if (message == "") 
                showConfirm(); 
        }); 
     } 

} 


// if there is no validation errors and json message == "" (this message is displayed if there is match in database for room), then show confirmation box.

</script>

Sql没有任何问题。该表的名称是“Room”,但该字段的名称也称为“Room”。我在room.php文件application中有一个有效或无效房间的样本,它在我的create_session.php文件中不起作用。再次输入“CW5 / 10”表示有效房间和其他任何无效房间

1 个答案:

答案 0 :(得分:0)

我认为您的SQL请求中存在错误。 您应该检查Room.id或Room.name,而不仅仅是Room,这似乎是您的表名。直接在phpMyAdmin中尝试您的请求。

[编辑] 如果请求不好,您的php文件可能会出现错误/警告且响应不是JSON格式