2012-01-26 2 views
0

Пожалуйста, посмотрите на это create_session.php применения: ApplicationОна не отображает сообщение, если номер действителен или не

При открытии приложения вы увидите CourseId текстовое поле. Введите «info101» в текстовое поле и нажмите «Отправить».

Он должен отображать все функции ниже. Не вводите ничего, нажмите кнопку «Подготовьте вопросы» внизу. Вы должны увидеть много красных сообщений. Это подтверждение, в котором указано, что вам нужно сделать для ввода каждой формы.

Теперь заполните все функции, но в текстовом поле «Комната» введите «CN10/10». Это неправильное значение. После заполнения всех деталей нажмите кнопку «Подготовить вопросы», все красные сообщения должны исчезнуть, но в текстовом поле «Комната» должно отображаться сообщение, поскольку это значение неверно, но сообщение не выгружено. Он должен отобразить сообщение «This Room is Invalid».

Теперь, если вы введете правильное значение в текстовое поле «Комната» 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.php application, он просто не работает в моем файле create_session.php. Снова проверьте его, набрав «CW5/10» для действительной комнаты и всего остального для недействительного номера.

+0

Я думаю, что первый аргумент в функции getJSON это имя бэкенд файл быть вызванным .., который ур отсутствует –

+0

Извините, что я забыл поместить файл url в get Json, но он по-прежнему делает то же самое. – user1170029

+0

Я знаю, что это не исправить вашу проблему, но вы рассмотрели возможность использования выпадающего списка или какого-либо другого элемента управления, который заставляет людей выбирать комнату, а не вводить ее вручную. Это избавит вас от необходимости проверять, и, на мой взгляд, это облегчит пользователям. Просто мысль. – Tjaart

ответ

0

Я думаю, что в вашем запросе SQL есть ошибка. Вероятно, вы должны проверить номер Room.id или Room.name, а не только номер, который, по-видимому, является вашим именем в таблице. Попробуйте свой запрос непосредственно в phpMyAdmin.

[править] Если запрос не является хорошим, вы можете иметь ошибку/предупреждение из файла PHP и ответ не в формате JSON

+0

Нет ничего плохого в Sql. Имя таблицы - «Комната», но название поля также называется «Комната». У меня есть рабочий пример наличия действительного или недопустимого места в файле room.php [link] (http://helios.hud.ac.uk/u0867587/Mobile_app/room.php), он просто не работает в моем файле create_session.php. Снова проверьте его, набрав «CW5/10» для действительной комнаты и всего остального для недействительного номера. – user1170029

+0

Прошу прощения, но в вашем create_session ... страница перезагружается. Нет запроса ajax. Попробуйте остановить события и вернуть «false» в функцию submitclick. – dievardump

Смежные вопросы