Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][JavaScript][AJAX]Blokowanie pola formularza.
Forum PHP.pl > Forum > Przedszkole
gylopl
Witam!
Mam skrypt, który wyswietla mi dane poprzez ajax, chcialbym aby po wybraniu optiona 2,3 badz 4 blokowal sie formularz.
plik ajax.php
  1. <?php
  2. echo'<script src="ajax.js"></script>';
  3. echo'<form>
  4. Wybierz osobę:
  5. <select id="k" onchange="showUser(this.value)">
  6. <option value="1">wybierz droge</option>
  7. <option value="2">Idę prosto</option>
  8. <option value="3">Idę w prawo</option>
  9. <option value="4">Idę w lewo</option>
  10. </select>
  11. </form><div id="txtHint"></div><br><br>
  12.  
  13. ';
  14. ?>


Do pliku getajax.php dodalem
Kod
   var k = document.getElementById(k);
         k.disabled=true;

jednak to mi nie chce zadzialac;/

plik getajax.php
  1. <?php
  2. $q=$_GET[&#092;"q\"];
  3. if($q == 1){
  4.    echo 'Wybierz drogę!';
  5. }
  6. else if($q == 2){
  7.    echo 'Idziesz prosto
  8.    <script type=\"text/javascript\">
  9. var k = document.getElementById(k);
  10. k.disabled=true;
  11. !';
  12.    ?>
  13.    
  14.    }else if($q == 3){
  15.    echo'Idziesz w prawo
  16.    <script type=\"text/javascript\">
  17. var k = document.getElementById(k);
  18. k.disabled=true;
  19. ';
  20. }else if($q == 4){
  21.    echo'Idziesz w lewo
  22.    <script type=\"text/javascript\">
  23. var k = document.getElementById(k);
  24. k.disabled=true;
  25. ';
  26. }else{
  27.    
  28. }
  29. ?>


plik ajax.js

Kod
     var xmlHttp
        
         function showUser(str)
         {
         xmlHttp=GetXmlHttpObject()
         if (xmlHttp==null)
          {
          alert ("Browser does not support HTTP Request")
          return
          }
         var url="getajax.php"
         url=url+"?q="+str
         url=url+"&sid="+Math.random()
         xmlHttp.onreadystatechange=stateChanged
         xmlHttp.open("GET",url,true)
         xmlHttp.send(null)
         }
        
         function stateChanged()
         {
         if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
          {
          document.getElementById("txtHint").innerHTML=xmlHttp.responseText
          }
         }
        
         function GetXmlHttpObject()
         {
         var xmlHttp=null;
         try
          {
          // Firefox, Opera 8.0+, Safari
          xmlHttp=new XMLHttpRequest();
          }
         catch (e)
          {
          //Internet Explorer
          try
           {
           xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
           }
          catch (e)
           {
           xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
           }
          }
         return xmlHttp;
         }

http://equipment.cba.pl/ajax/ajax.php stronka z formularzem


prosze o pomoc!
kamil4u
Powiem szczerze, że nie sprawdzałem całego kodu bo nie widzę zmiennej "k", dlatego myślę:
Kod
var k = document.getElementById(k); //<--, że tu k powinno być w ", czyli ...getElementById("k");
k.disabled=true;

Chyba, że nie wstawiłeś całego kodu, bądź coś pominąłem smile.gif
gylopl
Cytat(kamil4u @ 30.06.2009, 19:57:56 ) *
Chyba, że nie wstawiłeś całego kodu, bądź coś pominąłem smile.gif


Pierwszy kod byl niepelny, dalek k w cudzyslow ale nie pomoglo
michal_robak
Nie ma tu chyba za wiele co kombinować. Dajesz po prostu w pliku ajax.js w tej funkcji showUser(str) na jej końcu taką linijkę:

  1. <?php
  2. document.getElementById('k').disabled=true;
  3. ?>


i powinno być po kłopocie. Plik getajax.php powinien ci tylko służyć do wypisywania tekstu. Pozdrawiam

EDIT
AHA I POPRAW PLIK getajax.php bo w takiej formie jak przedstawiłeś nie ma prawa działać.
gylopl
Cytat(michal_robak @ 30.06.2009, 20:32:32 ) *
Nie ma tu chyba za wiele co kombinować. Dajesz po prostu w pliku ajax.js w tej funkcji showUser(str) na jej końcu taką linijkę:

  1. <?php
  2. document.getElementById('k').disabled=true;
  3. ?>


i powinno być po kłopocie. Plik getajax.php powinien ci tylko służyć do wypisywania tekstu. Pozdrawiam


ale jak wybiore "wybierz droge" to tez zablokuje formularz, co zrobic zeby blokowalo jak wybiore prosto,prawo,lewo?

Cytat(michal_robak @ 30.06.2009, 20:32:32 ) *
EDIT
AHA I POPRAW PLIK getajax.php bo w takiej formie jak przedstawiłeś nie ma prawa działać.


co poprawic?bo nie bardzo znam ajaxa:) sciagnalem ten caly skrypt z neta i przerobilem zeby pobieral dane z ifow, a nie bazy danych.

dzieki za odpowiedz robak:)
michal_robak
Skoro przesyłasz wartość elementu K jako argument funkcji to piszesz:

  1. <?php
  2. if(str!=1)
  3.   document.getElementById('k').disabled=true;
  4. //gdzie str to twoj argument funkcji
  5. ?>


a plik getajax.php powinien wygladac tak:
  1. <?php
  2. $q=$_GET['q'];
  3. if($q == 1){
  4.   echo 'Wybierz drogę!';
  5. }
  6. else if($q == 2){
  7.   echo 'Idziesz prosto!';  
  8.   }else if($q == 3){
  9.   echo'Idziesz w prawo';
  10. }else if($q == 4){
  11.   echo'Idziesz w lewo';
  12. }
  13. ?>


i tu jest czysty PHP w tym pliku smile.gif. Ja też zaczynałem przygode z ajaxem od tegoż własnie pliku ajax.js i myslałem boże a na co to i po co hehe. Powodzenia i bądź wytrwały smile.gif.
gylopl
dzięki mistrzu:)
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.