Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: jak zmienić kod aby przekazywał 2 zmienne do pliku sprawdzającego
Forum PHP.pl > Forum > XML, AJAX
japolak
witam
znalazlem na sieci fajny skrypt

  1. <script type="text/javascript">
  2. function toggle_username(userid) {
  3. if (window.XMLHttpRequest) {
  4. http = new XMLHttpRequest();
  5. } else if (window.ActiveXObject) {
  6. http = new ActiveXObject("Microsoft.XMLHTTP");
  7. }
  8. handle = document.getElementById(userid);
  9. var url = 'ajax.php?';
  10. if(handle.value.length > 0) {
  11. var fullurl = url + 'do=check_username_exists&username=' + encodeURIComponent(handle.value);
  12. http.open("GET", fullurl, true);
  13. http.send(null);
  14. http.onreadystatechange = statechange_username;
  15. }else{
  16. document.getElementById('username_exists').innerHTML = '';
  17. }
  18. }
  19.  
  20. function statechange_username() {
  21. if (http.readyState == 4) {
  22. var xmlObj = http.responseXML;
  23. var html = xmlObj.getElementsByTagName('result').item(0).firstChild.data;
  24. document.getElementById('username_exists').innerHTML = html;
  25. }
  26. }
  27. </script>
  28. <input id="username" type="text" name="username" onchange="toggle_username('username')" /><br />
  29. <div id="username_exists" style="font-size: 11px;font-weight: bold;color:#FF3300"> </div>


w danej chwili wysyla mi przez geta 1 zmienna username.
a chciałbym aby przesyłał 2 zmienne ( ta druga tylko jest potrzebna do warunku który chce postawić w z zapytaniu msyql, bez konieczności sprawdzania czy jest prawidłowa czy nie)


jak to zrobic??
phpion
Kod
var fullurl = url + 'do=check_username_exists&username=' + encodeURIComponent(handle.value);

Nie widzisz tutaj żadnej zależności? To ci podpowiem: zmienna1=wartosc1&zmienna2=wartosc2&zmienna3=wartosc3... Próbuj, a jeśli nie będzie ci wychodziło to wklej kod ze swoimi próbami.
japolak
Cytat(phpion @ 8.09.2009, 21:52:01 ) *
Kod
var fullurl = url + 'do=check_username_exists&username=' + encodeURIComponent(handle.value);

Nie widzisz tutaj żadnej zależności? To ci podpowiem: zmienna1=wartosc1&zmienna2=wartosc2&zmienna3=wartosc3... Próbuj, a jeśli nie będzie ci wychodziło to wklej kod ze swoimi próbami.



z ajaxa / javy to jestem cimna woda..

zrobilem to tak. i tez na wiele inny sposobów i nie wychodzi..

  1. <script type="text/javascript">
  2. function toggle_username(userid, karnetid) {
  3. if (window.XMLHttpRequest) {
  4. http = new XMLHttpRequest();
  5. } else if (window.ActiveXObject) {
  6. http = new ActiveXObject("Microsoft.XMLHTTP");
  7. }
  8.  
  9.  
  10.  
  11. handle = document.getElementById(userid,karnetid );
  12.  
  13.  
  14. var url = 'ajax.php?';
  15. if(handle.value.length > 0) {
  16. var fullurl = url + 'do=check_username_exists&username=' + encodeURIComponent(handle.value) + '&karnet='+ encodeURIComponent(handle.value) ;
  17. http.open("GET", fullurl, true);
  18. http.send(null);
  19. http.onreadystatechange = statechange_username;
  20. }else{
  21. document.getElementById('username_exists').innerHTML = '';
  22. }
  23. }
  24.  
  25. function statechange_username() {
  26. if (http.readyState == 4) {
  27. var xmlObj = http.responseXML;
  28. var html = xmlObj.getElementsByTagName('result').item(0).firstChild.data;
  29. document.getElementById('username_exists').innerHTML = html;
  30. }
  31. }
  32. </script>
  33. <input id="username" type="text" name="username" onchange="toggle_username('username')" /><br />
  34. <div id="username_exists" style="font-size: 11px;font-weight: bold;color:#FF3300"> </div>
  35. <br /><br />
  36. <input id="karnet" type="text" name="karnet" onchange="toggle_username('karnet')" /><br />



a odbieram to przez plik

  1. <?php
  2. mysql_connect ('localhost', 'pracainz', 'praca123');
  3. mysql_select_db('ewidencja');
  4.  
  5. $karnet=$_GET['karnet'];
  6.  
  7. $do = $_GET['do'];
  8. switch($do) {
  9. case 'check_username_exists':
  10. $karta = $_GET['username'];
  11. }else{
  12. $karta = addslashes($_GET['username']);
  13. }
  14.  
  15. $count = mysql_num_rows(mysql_query("select * from zam_karnet where id_karty='".$karta."' and typ_karnetu='".$karnet."'
  16. and data_waz>= curdate() and poz_wejscia>'0'"));
  17. header('Content-Type: text/xml');
  18. header('Pragma: no-cache');
  19. echo '<?xml version="1.0" encoding="UTF-8"?>';
  20. echo '<result>';
  21. if($count > 0) {
  22. echo 'That username already exists, please select another one.';
  23. }else{
  24. echo 'That username is available.';
  25. }
  26. echo '</result>';
  27. break;
  28. default:
  29. echo 'Error, invalid action';
  30. break;
  31. }
  32. ?>



i lipa.. pierwszy parametr jest przekazywany .. a drugi chyba nie .. w sumie nie wiem dokońca jak sprawdzić czy parapetry sa przekazane w tym skrypcie.

plis help:... sad.gif

jeszcze raz:
chodzi mi o to aby parametr username byl sprawdzany pod kątem parametru karnet (czyli w zależnosci jaki jest karnet to program sprawdza czy user moze jest ok czy tez nie) i nie wiem jak przeslac drugi parametr sad.gif



phpion
Powinno działać:
  1. function toggle_username(userid) {
  2. if (window.XMLHttpRequest) {
  3. http = new XMLHttpRequest();
  4. } else if (window.ActiveXObject) {
  5. http = new ActiveXObject("Microsoft.XMLHTTP");
  6. }
  7.  
  8.  
  9.  
  10. handle = document.getElementById(userid);
  11. karnet = document.getElementById("karnet");
  12.  
  13.  
  14. var url = 'ajax.php?';
  15. if(handle.value.length > 0) {
  16. var fullurl = url + 'do=check_username_exists&username=' + encodeURIComponent(handle.value) + '&karnet='+ encodeURIComponent(karnet.value) ;
  17. http.open("GET", fullurl, true);
  18. http.send(null);
  19. http.onreadystatechange = statechange_username;
  20. }else{
  21. document.getElementById('username_exists').innerHTML = '';
  22. }
  23. }
  24.  
  25. function statechange_username() {
  26. if (http.readyState == 4) {
  27. var xmlObj = http.responseXML;
  28. var html = xmlObj.getElementsByTagName('result').item(0).firstChild.data;
  29. document.getElementById('username_exists').innerHTML = html;
  30. }
  31. }
japolak
dzieki .. zadziałało

ale trapi mnie nastepne zadanie.. gdybym chcial przykładowo sprawdzić wiecej danych.. nie jedna ale naprzykład pięć

i robiąc tak :

  1. <script type="text/javascript">
  2. function toggle_username(userid) {
  3. if (window.XMLHttpRequest) {
  4. http = new XMLHttpRequest();
  5. } else if (window.ActiveXObject) {
  6. http = new ActiveXObject("Microsoft.XMLHTTP");
  7. }
  8.  
  9.  
  10.  
  11. handle = document.getElementById(userid );
  12. karnet = document.getElementById("karnet");
  13.  
  14.  
  15. var url = 'ajax.php?';
  16. if(handle.value.length > 0) {
  17. var fullurl = url + 'do=check_username_exists&username=' + encodeURIComponent(handle.value) + '&karnet='+ encodeURIComponent(karnet.value) ;
  18. http.open("GET", fullurl, true);
  19. http.send(null);
  20. http.onreadystatechange = statechange_username;
  21. }else{
  22. document.getElementById('username_exists').innerHTML = '';
  23. }
  24. }
  25.  
  26. function statechange_username() {
  27. if (http.readyState == 4) {
  28. var xmlObj = http.responseXML;
  29. var html = xmlObj.getElementsByTagName('result').item(0).firstChild.data;
  30. document.getElementById('username_exists').innerHTML = html;
  31. }
  32. }
  33. </script>
  34.  
  35. <?php
  36.  
  37. for($i=0; $i<=5; $i++)
  38. { ?>
  39. <input id="username" type="text" name="<?php echo$i;?>" onchange="toggle_username('username')" /><br />
  40. <div id="username_exists" style="font-size: 11px;font-weight: bold;color:#FF3300"> </div>
  41. <br /><br /><?php
  42. }
  43. ?>
  44. tu wpisz karnet
  45. <input id="karnet" type="text" name="karnet" onchange="toggle_username('karnet')" /><br />



  1.  
  2. <?php
  3. mysql_connect ('localhost', 'pracainz', 'praca123');
  4. mysql_select_db('ewidencja');
  5.  
  6. $karnet=$_GET['karnet'];
  7. [b]for($c=0;$c<=5;$c++)
  8. {
  9. $tablica[]=$_GET[$c];
  10. }[/b]
  11.  
  12.  
  13. $do = $tablica[];
  14. switch($do) {
  15. case 'check_username_exists':
  16. $karta = $tablica[];
  17. $karnet=$_GET['karnet'];
  18. }else{
  19. $karta = addslashes($tablica[]);
  20. $karnet = addslashes($_GET['karnet']);
  21. }
  22.  
  23. $count = mysql_num_rows(mysql_query("select * from zam_karnet where id_karty='".$karta."' and typ_karnetu='".$karnet."'
  24. and data_waz>= curdate() and poz_wejscia>'0'"));
  25. header('Content-Type: text/xml');
  26. header('Pragma: no-cache');
  27. echo '<?xml version="1.0" encoding="UTF-8"?>';
  28. echo '<result>';
  29. if($count > 0) {
  30. echo 'ok.';
  31. }else{
  32. echo 'bak aktualnego karnetu';
  33. }
  34. echo '</result>';
  35. break;
  36. default:
  37. echo 'Error, invalid action';
  38. break;
  39. }
  40. ?>





jak sprawdzać naraz wiecej zmiennych?? pod tym samym warunkiem?? korzystając z pętli

tak próbowałem jeszcze wykorzystać z foreach.. na rózne sposoby. bo wkońcu wytwarza sie tablica..
no ale nie dziala;(
esiek
użyj w PHP

  1. $_POST['zmienna']


a jezeli chodzi o ajax to ja uzywam

  1. function rejestruj()
  2. {
  3. if(XMLHttpRequestObject){
  4. var div = document.getElementById("wynik");
  5. var przyciskEl = document.getElementById("rejestruj");
  6.  
  7. var reg_mail = document.getElementById("reg_mail").value;
  8. var reg_login = document.getElementById("reg_login").value;
  9. var reg_haslo = document.getElementById("reg_haslo").value;
  10. var reg_haslo2 = document.getElementById("reg_haslo2").value;
  11. var reg_regulamin = document.getElementById("reg_regulamin").value;
  12.  
  13.  
  14.  
  15.  
  16. reg_mail = escape(reg_mail);
  17. reg_login = escape(reg_login);
  18. reg_haslo = escape(reg_haslo);
  19. reg_haslo2 = escape(reg_haslo2);
  20. reg_regulamin = escape(reg_regulamin);
  21.  
  22.  
  23.  
  24. var str = "&reg_mail=" + reg_mail + "&reg_login=" + reg_login + "&reg_haslo=" + reg_haslo + "&reg_haslo2=" + reg_haslo2 + "&reg_regulamin=" + reg_regulamin;
  25.  
  26. przyciskEl.disabled = true;
  27. XMLHttpRequestObject.open("POST", "f/rejestruj.php");
  28. XMLHttpRequestObject.setRequestHeader(
  29. 'Content-Type', 'application/x-www-form-urlencoded');
  30.  
  31. XMLHttpRequestObject.onreadystatechange = function()
  32. {
  33. if (XMLHttpRequestObject.readyState == (1 || 0)){ div.innerHTML = "<center><img src='images/ajax.gif'></CENTER>";}
  34. if (XMLHttpRequestObject.readyState == 4){
  35. if(XMLHttpRequestObject.status == 200){
  36. var tekst = XMLHttpRequestObject.responseText;
  37. div.innerHTML = tekst;
  38. }
  39. przyciskEl.disabled = false;
  40. }
  41.  
  42. }
  43. XMLHttpRequestObject.send(str);
  44. }
  45. }
  46.  
  47. var XMLHttpRequestObject = getXMLHttpRequestObject();


jak chcesz uzyc moetody GET to mozesz zmienic tam w scryptcie ajaxu
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.