Отключить кнопку отправки на основе ответа Ajax - PullRequest
0 голосов
/ 25 февраля 2012

Итак, в общем, я пытаюсь отключить кнопку отправки на основе вызова ajax, который проверяет мою базу данных на наличие данных за определенную дату.

В настоящее время у меня все вышеперечисленное работает, но я сталкиваюсь с последним препятствием в фактическом отключении кнопки отправки. На presnt у меня есть ответ на мой вызов ajax, отображаемый в виде текста в div на моей странице, и я могу, изменив код ниже, отключить кнопку, если ответ не совпадает с проверенным моим кодом, но не может заставить его работать правильно быть совпадающим (или нет ответа). Я предполагаю, что моя проблема в том, что я проверяю и каков реальный ответ от вызова ajax, разные. Любая помощь будет высоко ценится.

Моя страница, которая делает вызов ajax

<script type="text/javascript">
function showHint(str)
{
if (str.length==0)
  { 
  document.getElementById("txtHint").innerHTML="";
  document.getElementById("txtHint").style.border="0px";
  return;
  }
if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xmlhttp.onreadystatechange=function()
  {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
    document.getElementById("txtHint").innerHTML=xmlhttp.responseText;
    document.getElementById("txtHint").style.border="1px solid #A5ACB2";
    if (xmlhttp.responseText == 'WARNING!! - PREVIOUS RECORDS FOUND') document.getElementById('FRINSUB').disabled = true;
    else
    document.getElementById('FRINSUB').disabled = false;
}
 }
xmlhttp.open("GET","checkdate.php?q="+str,true);
xmlhttp.send();
}
</script>

Мой очень простой код Ajax

<?php

$cdrf=trim($_GET["q"]);
list($d, $m, $y) = explode('/', $cdrf);
$mk=mktime(0, 0, 0, $m, $d, $y);
$cdrfq=strftime('%Y-%m-%d',$mk);

$q=mysql_real_escape_string($cdrfq);
$isdate = false;

$con = mysql_connect("server","username","password");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }

mysql_select_db("jbsrint", $con);
$query = "SELECT * FROM fuelrecords WHERE FR_WE='$q'";
$res = mysql_query($query);
if(mysql_num_rows($res) > 0){
$response = "WARNING!! - PREVIOUS RECORDS FOUND";
}else{
$response = "NO RECORD FOUND";
}
echo $response;
?>

Ответы [ 2 ]

1 голос
/ 26 февраля 2012

Хорошо, я понял это.По какой-то причине это происходит (до сих пор не могу выяснить, откуда). Я получал новую строку в возвращенном коде ajax, и, хотя это был только пробел, оператор if не мог соответствовать фразе, которую я просил проверить.1002 * Используя $ .trim (можно найти в jQuery Сравнение строк оператора 'If' не работает ) Я удалил пустое пространство, и все это заработало.

Новый код теперь выглядитэто.

if ($.trim(xmlhttp.responseText) == "WARNING!! - PREVIOUS RECORDS FOUND") document.getElementById('FRINSUB').disabled = true;
0 голосов
/ 25 февраля 2012
document.getElementById('FRINSUB').disabled = 'disabled';
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...