Parasts cilvēks Posted March 26, 2010 Report Share Posted March 26, 2010 Hello! Galvenais jautājums būtu, kapēc ajaxRequest strādā uz Firefox, Chroma , bet nestrādā uz IE :( Lieta tāda, datubāzē ir riepu saraksts ar izmēriem (195/65 R15, 205/55 R16 utt...) gribējas uztaisīt tā, lai piemēram formā ievadot platumu, augstumu mēs varam izvēlēties tikai to, kas atbilst tam platumam, un pēc tam izvēlēties austumu, mēs varam izvēlēties tikai tādu diametru, kas atbilst izvēlētajam platumam un augstumam. Itkā viss tika uztaisīts un likās, ka ir ok, bet tad kad mēģināju veikt izvēli IE, tad sapratu, ka nekas nesanāk :( Šeku reku links un to garadarbu: TEST Lai būtu vairāk saprotami pielieku klāt index failu: <?php include ("bd.php"); ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="lv" lang="lv"> <head> <title>Tests</title> <meta http-equiv="Content-Type" content="text/html; charset=utf8" /> <script> function parbaude(parentName,childName) { if(document.getElementById(parentName).options[document.getElementById(parentName).selectedIndex].value != "--") { document.getElementById(childName).disabled = false; } } //Browser Support Code function ajaxFunction(name){ var ajaxRequest; // The variable that makes Ajax possible! //Meklee iznjemumu try{ //try ir bloks, kur liek, kur jaameklee kljuda // Opera 8.0+, Firefox, Safari ajaxRequest = new XMLHttpRequest(); } catch (e){ //catch kjer kljuudas // Internet Explorer Browsers try{ ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try{ ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e){ // Something went wrong alert("Your browser broke!"); return false; } } } // Create a function that will receive data sent from the server ajaxRequest.onreadystatechange = function(){ if(ajaxRequest.readyState == 4){ if(name == 'augstums') { var ajaxDisplay = document.getElementById(name); ajaxDisplay.innerHTML = ajaxRequest.responseText; } else if(name == 'diametrs') { var ajaxDisplay = document.getElementById(name); ajaxDisplay.innerHTML = ajaxRequest.responseText; } else { alert('kljuda ieksh ajaxrequest.readyState.'); } } } var augstums = document.getElementById("augstums").options[document.getElementById("augstums").selectedIndex].value; var platums = document.getElementById("platums").options[document.getElementById("platums").selectedIndex].value; var diametrs = document.getElementById("diametrs").options[document.getElementById("diametrs").selectedIndex].value; if(name == 'augstums') { var queryString = "?platums=" + platums; } else if(name == 'diametrs') { var queryString = "?platums=" + platums + "&augstums=" + augstums; } var strings = "apstrade.php" + queryString; ajaxRequest.open("GET", strings, true); ajaxRequest.send(null); } </script> </head> <body> <form name="forma" action="" method="post"> Platums: <select id="platums" name="platums" onchange="parbaude('platums','augstums');ajaxFunction('augstums')"> <option value="--">--</option> <?php $platt = mysql_query("SELECT platums FROM vieglas_riepas GROUP BY platums") or die('neselektee1'); while ($plat = mysql_fetch_array($platt)) { echo '<option value="'.$plat["platums"].'">'.$plat["platums"].'</option>'; } ?> </select> Augstums: <select id="augstums" name="augstums" onchange="parbaude('augstums','diametrs');ajaxFunction('diametrs')" disabled="true"> <option value="--">--</option> </select> Diametrs: <select id="diametrs" name="diametrs" onchange="parbaude('diametrs','Button')" disabled="true"> <option value="--">--</option> </select> <input type="submit" id="Button" value="Pievienot" disabled="true" /> </form> <?php if (isset ($_POST['platums'])) {$platums = $_POST['platums'];} else {$platums = "";} if (isset ($_POST['augstums'])) {$augstums = $_POST['augstums'];} else {$augstums = "";} if (isset ($_POST['diametrs'])) {$diametrs = $_POST['diametrs'];} else {$diametrs = "";} echo '<br><br><br>Platums: '.$platums.' <br> Augstums: '.$augstums.' <br> Diametrs: '.$diametrs.'<br>'; ?> </body> Un apstrādes failu, kurš apstrādā tos dartus <?php include ("bd.php"); if(isset($_GET['platums']) && isset($_GET['augstums'])) { $platums = $_GET['platums']; $augstums = $_GET['augstums']; $results = mysql_query("SELECT diametrs AS value FROM vieglas_riepas WHERE platums='$platums' AND augstums='$augstums' GROUP BY diametrs") or die('neselektee1'); } else if(isset($_GET['platums'])) { $platums = $_GET['platums']; $results = mysql_query("SELECT augstums AS value FROM vieglas_riepas WHERE platums='$platums' GROUP BY augstums") or die('neselektee1'); } $toString = "<option>--</option>"; while($row = mysql_fetch_array($results)) { $toString .= "<option value='".$row["value"]."'>".$row["value"]."</option>"; } echo $toString; ?> Varbūt ir kaut kāda citādāka iespēja veikt šādu lietiņu... Jau iepriekš, paldies! Quote Link to comment Share on other sites More sharing options...
briedis Posted March 26, 2010 Report Share Posted March 26, 2010 (edited) Dievs žēlīgs, tak neliec te tādus koda blāķus! Priekš tā ir domāts http://paste.php.lv Neiedziļinājos tavā kodā, bet noteikti ieteiktu pamēģināt jQuery (http://jquery.com/) Tur darbs ar ajaxu ir ļōti atvieglots, nekā rakstot pašam to visu.. Vēlāk nevarēsi saprast, kā spēji bez tā dzīvot ;) Un galvenais - saderība uz visiem pārlūkiem! Edited March 26, 2010 by briedis Quote Link to comment Share on other sites More sharing options...
2easy Posted March 26, 2010 Report Share Posted March 26, 2010 vajag likt tikai to kodu kas attiecas uz problēmu, nevis sazin kkādas tur riepas. ja uz ie nevar uztaisīt ajax requestu, tad uztaisi vienu mazu button vai link, kas taisa ajax request un tad ieposto šeit to kodu kas nestrādā. bet tu iekopē 90% koda, kas vsp neattiecas uz tavu problēmu!!! Quote Link to comment Share on other sites More sharing options...
2easy Posted March 26, 2010 Report Share Posted March 26, 2010 (edited) looool, un problēmai vsp nav nekāda sakara ar ajax!!! :D:D:D ie browseriem select taga options nevar nomainīt ar innerHTML. ir jāmaina pats select tags. tb to <select> ieliec iekš <div id="tavs-dropdown-wrapperis"><select>...</select></div> un maini document.getElementById("tavs-dropdown-wrapperis").innerHTML = "<select>...</select>"; Edited March 26, 2010 by 2easy Quote Link to comment Share on other sites More sharing options...
codez Posted March 26, 2010 Report Share Posted March 26, 2010 Klausi briedi un izmanto/apgūsti jQuery javascript bibliotēku. jQuery var savā lapā inclūdot no googles CDN serveriem, kas krietni paātrinās to ielādi. Quote Link to comment Share on other sites More sharing options...
Kavacky Posted March 26, 2010 Report Share Posted March 26, 2010 (edited) Es gan teiktu, ka forši, ka kāds pats ņemas. Edited March 26, 2010 by Kavacky Quote Link to comment Share on other sites More sharing options...
codez Posted March 26, 2010 Report Share Posted March 26, 2010 Nē, nu tā jau ir. Labi jau ir vienreiz izprast, kas tam lācītim vēderā. Bet pēc tam pie jQuery. Quote Link to comment Share on other sites More sharing options...
2easy Posted March 26, 2010 Report Share Posted March 26, 2010 Es gan teiktu, ka forši, ka kāds pats ņemas. +1 Nē, nu tā jau ir. Labi jau ir vienreiz izprast, kas tam lācītim vēderā. +1 Bet pēc tam pie jQuery. tikai tad, ja tam ir pietiekami liela pievienotā vērtība ;) Quote Link to comment Share on other sites More sharing options...
codez Posted March 26, 2010 Report Share Posted March 26, 2010 Nu šijā gadījumā to kodu ar jQuery varētu uzrakstīt vienā vai divās īsā rindiņā. Quote Link to comment Share on other sites More sharing options...
2easy Posted March 26, 2010 Report Share Posted March 26, 2010 (edited) uzrakstīt savu browseru neatkarīgu httpGet() ir ~10x īsas rindiņas (salīdzinot ar jquery bibliotēku, kura sver desmitiem kilobaitu). un pēc tam to izsaukt arī ir tikai 1x rindiņa ;) Edited March 26, 2010 by 2easy Quote Link to comment Share on other sites More sharing options...
codez Posted March 26, 2010 Report Share Posted March 26, 2010 Tāpēc jau var izmantot google CDN, pie tam pēdējā laikā daudzas lapas sāk to izmantot un ir ļoti liela varbūtība, ka lietotājam jau būs jQuery browsera kešā. Quote Link to comment Share on other sites More sharing options...
2easy Posted March 26, 2010 Report Share Posted March 26, 2010 (edited) yep, tā protams ir laba lieta ;) varēji jau pie reizes ielikt arī linku, lai visi zin (kas vēl nezin) http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js starp citu, kad jūs inklūdojat jquery no googles, google zinās jūsu lapas apmeklētāju ip un lapu, ko tie apmeklē. līdz ar to šis ir kārtējais veids, kā google var ievākt statistiku par apmeklētājiem :D:D:D Edited March 26, 2010 by 2easy Quote Link to comment Share on other sites More sharing options...
Parasts cilvēks Posted March 26, 2010 Author Report Share Posted March 26, 2010 Ļoti atvainojos par garo godu un visu pārējo... Tā kā neesmu nekāds baigais spečoks, tad man grūti iebraukt tajā visā. Šito garo kodu man arī palīdzēja uztaisīt. Varbūt varētu atsūtīt kādu linku, kur varētu būts kāds tutorial, kur es varētu paskatīties, kā es to visu varētu dabūt gatavu izmantojot jQuery... Vai varbūt ja tas rakstāms pāris rindiņās, var uzrakstīt... Paldies! Quote Link to comment Share on other sites More sharing options...
briedis Posted March 26, 2010 Report Share Posted March 26, 2010 (edited) Oj, te gana piemēru, gan par ajax, gan vienkārši visādas noderīgas štelles: http://docs.jquery.com/Tutorials ..un vienmēr vajag pajautāt arī gūgles tantei.. Edited March 26, 2010 by briedis Quote Link to comment Share on other sites More sharing options...
2easy Posted March 26, 2010 Report Share Posted March 26, 2010 parastais cilvēk, šajā gadījumā tava konkrētā problēma nekādi nebija saistīta ar ajax (un jquery to neizlabos). izlasi #4 postu Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.