Почему мой код проверки AJAX не работает должным образом? - PullRequest
0 голосов
/ 21 мая 2009

Я сделал сайт, который зависит от PHP, AJAX и Javascript.
Проблема здесь в том, что веб-сайт работает нестабильно, что означает, что иногда проверка работает, а иногда она вообще не работает.
Код проверки написан на JavaScript. Значит ли это, что нам нужны более особые условия?

Код для проверки:

<script language=Javascript>
function Inint_AJAX() {
try { return new ActiveXObject("Msxml2.XMLHTTP");  } catch(e) {} //IE
try { return new ActiveXObject("Microsoft.XMLHTTP"); } catch(e) {} //IE
try { return new XMLHttpRequest();  } catch(e) {} //Native Javascript
alert("XMLHttpRequest not supported");
return null;
};

function dochange(src, val) 
{
 var req = Inint_AJAX();
 req.onreadystatechange = function () 
 {
      if (req.readyState==4) 
      {
           if (req.status==200) 
           {    
                document.getElementById(src).innerHTML=req.responseText;
           }
      }
 };
 req.open("GET", "traditional_locate.php?data="+src+"&val="+val);
  req.send(null);
}

window.onLoad=dochange('cities', -1); 


function submitform()
{
 if(document.form1.onsubmit())
 {
    document.form1.submit();
 }
}

function validate()
{
  var p_o_box=(document.form1.p_o_box.value);
  var owner_name=(document.form1.owner_name.value);
  var cities=(document.form1.cities.value);
  var post_office=(document.form1.post_office.value);   


        if(cities == 0)
        {
            alert("Please Choose city");
            document.form1.cities.focus();
            return false;
        }

        else if(post_office == 0)
            {
            alert("Please Choose post office");
            document.form1.post_office.focus();

            return false;
            }

            else if (p_o_box=="")
                {
                    alert ("Please Write P.O.Box");
                    document.form1.p_o_box.focus();
                        return false;                       
                } 

                else if(owner_name=="")
                        {
                        alert("Please Write Owner Name");
                        return false;
                        }

                    else if(p_o_box!="")
                        {
                                var a=new Array;

                             <?php
                                session_start();                                    
                                $zipinfo=$_SESSION[zip_code];                                   
                                $conn=mysql_connect('localhost','root','');
                                mysql_select_db('post_db',$conn);
                                $query="select p_o_box from p_o_box where zip_code='$zipinfo' ";
                                $result = mysql_query ($query , $conn ) or die ( mysql_error ());
                                $rows=mysql_num_rows($result);
                                $n = array();
                                for($i=0;$i<$rows;$i++)
                                {
                                    $data=mysql_fetch_row($result);
                                    $n[] = $data[0]; 
                                }

                                for($i=0;$i<count($n); $i++)
                                {
                                    echo "a[$i]='".$n[$i]."';\n";
                                }           
                                ?>

                                var ss=0;
                                for(i=0;i<a.length;i++)

                                if(a[i]==p_o_box)
                                    {
                                        var ss=1;
                                    }

                                 if (ss==0)
                                    {
                                        alert('not correct p.o. box');
                                        document.form1.p_o_box.focus();
                                          return false;
                                   }
                                else
                                     {  return true;}

                        }                       


    return true;        
}

</script>

Ответы [ 2 ]

1 голос
/ 21 мая 2009

Очень сложно ответить, потому что я не вижу вопроса. Что именно не работает?

Но я могу предположить некоторые проблемы:

  • Вы уверены, что body.onload работает? Иногда не ...
  • Скриптинг не является кроссбраузерным
  • session_start () должен завершиться сбоем, поскольку ранее был вывод и заголовки не могут быть отправлены.
  • Вы сказали, что проверка не пройдена, но где она вызывается?

пожалуйста, предоставьте более точный вопрос и более понятный пример кода, который не работает (то есть я не уверен, что источник submitform () так необходим).

0 голосов
/ 21 мая 2009

Проверка должна выполняться на стороне сервера. Что происходит, когда использование отключает их JavaScript?

Кроме того, этот блок JavaScript будет выполнять PHP только при загрузке страницы, а не каждый раз, когда пользователь проверяет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...