Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][JavaScript][AJAX]Blokowanie pola formularza.
gylopl
post 30.06.2009, 18:28:54
Post #1





Grupa: Zarejestrowani
Postów: 82
Pomógł: 1
Dołączył: 6.04.2008

Ostrzeżenie: (0%)
-----


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!

Ten post edytował gylopl 30.06.2009, 19:10:24
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
kamil4u
post 30.06.2009, 18:57:56
Post #2





Grupa: Zarejestrowani
Postów: 2 350
Pomógł: 512
Dołączył: 4.01.2009
Skąd: Wrocław / Świdnica

Ostrzeżenie: (0%)
-----


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


--------------------
Go to the top of the page
+Quote Post
gylopl
post 30.06.2009, 19:11:17
Post #3





Grupa: Zarejestrowani
Postów: 82
Pomógł: 1
Dołączył: 6.04.2008

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
michal_robak
post 30.06.2009, 19:32:32
Post #4





Grupa: Zarejestrowani
Postów: 115
Pomógł: 12
Dołączył: 13.05.2006

Ostrzeżenie: (0%)
-----


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ć.

Ten post edytował michal_robak 30.06.2009, 19:38:09


--------------------
do wszystkiego trzeba podejść z głową a problem sam się rozwiąże
Go to the top of the page
+Quote Post
gylopl
post 30.06.2009, 20:05:42
Post #5





Grupa: Zarejestrowani
Postów: 82
Pomógł: 1
Dołączył: 6.04.2008

Ostrzeżenie: (0%)
-----


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:)
Go to the top of the page
+Quote Post
michal_robak
post 30.06.2009, 20:19:49
Post #6





Grupa: Zarejestrowani
Postów: 115
Pomógł: 12
Dołączył: 13.05.2006

Ostrzeżenie: (0%)
-----


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.


--------------------
do wszystkiego trzeba podejść z głową a problem sam się rozwiąże
Go to the top of the page
+Quote Post
gylopl
post 30.06.2009, 20:27:51
Post #7





Grupa: Zarejestrowani
Postów: 82
Pomógł: 1
Dołączył: 6.04.2008

Ostrzeżenie: (0%)
-----


dzięki mistrzu:)
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 14:40