Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [HTML][AJAX][PHP]Problem z powiązanym select'em
Forum PHP.pl > Forum > Przedszkole
Barcelona
Witam, kompletnie nie wiem jak ugryźć temat. Na stronie http://www.try-this.type.pl/delegacje/ mam zastosowany dynamiczny select, który pokazuje kolejny po wybraniu pierwszego. Jednak strona rozjeżdża gdy tylko wybiorę wartość z pierwszego selecta.

Jako wzór brałem kod z tej strony: http://www.blueicestudios.com/chained-sele...php-mysql-ajax/

A więc tak wygląda plik z formularzem:

  1. <script type="text/javascript">
  2. $(document).ready(function() {
  3. $('#wait_1').hide();
  4. $('#drop_1').change(function(){
  5. $('#wait_1').show();
  6. $('#result_1').hide();
  7. $.get("func.php", {
  8. func: "drop_1",
  9. drop_var: $('#drop_1').val()
  10. }, function(response){
  11. $('#result_1').fadeOut();
  12. setTimeout("finishAjax('result_1', '"+escape(response)+"')", 400);
  13. });
  14. return false;
  15. });
  16. });
  17.  
  18. function finishAjax(id, response) {
  19. $('#wait_1').hide();
  20. $('#'+id).html(unescape(response));
  21. $('#'+id).fadeIn();
  22. }
  23. function finishAjax_tier_three(id, response) {
  24. $('#wait_2').hide();
  25. $('#'+id).html(unescape(response));
  26. $('#'+id).fadeIn();
  27. }
  28. <form action="" method="post">
  29.  
  30. <select name="drop_1" id="drop_1" size="7">
  31.  
  32. <option value="" disabled="disabled">Brygada</option>
  33.  
  34. <?php getTierOne(); ?>
  35.  
  36. </select>
  37.  
  38. <span id="wait_1" style="display: none;">
  39. <img alt="Please Wait" src="/images/ajax-loader.gif"/>
  40. </span>
  41. <span id="result_1" style="display: none;"></span>
  42. <span id="wait_2" style="display: none;">
  43. <img alt="Please Wait" src="/images/ajax-loader.gif"/>
  44. </span>
  45. <span id="result_2" style="display: none;"></span>
  46.  
  47. </form>
  48. <? if(isset($_POST['submit'])){
  49. $drop = $_POST['drop_1'];
  50. $drop_2 = $_POST['drop_2'];
  51. $drop_3 = $_POST['drop_3'];
  52. echo "You selected a ";
  53. echo $drop_3." ".$drop." ".$drop_2;
  54. }


a tak plik func.php

  1. //**************************************
  2. // Page load dropdown results //
  3. //**************************************
  4. function getTierOne()
  5. {
  6. echo '<option value="1">Brygada 1</option>';
  7. echo '<option value="2">Brygada 2</option>';
  8. echo '<option value="3">Brygada 3</option>';
  9. echo '<option value="4">Brygada 4</option>';
  10. echo '<option value="5">Brygada 5</option>';
  11. }
  12.  
  13. //**************************************
  14. // First selection results //
  15. //**************************************
  16. if($_GET['func'] == "drop_1" && isset($_GET['func'])) {
  17. drop_1($_GET['drop_var']);
  18. }
  19.  
  20. function drop_1($drop_var)
  21. {
  22. echo '<select name="drop_2" id="drop_2" size="7">
  23. <option value=" " disabled="disabled">Pracownik</option>';
  24. echo '<option value="1">Testowy</option>';
  25. echo '<option value="2">Testowy 1</option>';
  26. echo '<option value="3">Testowy 2</option>';
  27. echo '<option value="4">Testowy 3</option>';
  28. echo '<option value="5">Testowy 4</option>';
  29. echo '</select>';
  30. echo "<script type=\"text/javascript\">
  31. $('#wait_2').hide();
  32. $('#drop_2').change(function(){
  33. $('#wait_2').show();
  34. $('#result_2').hide();
  35. $.get(\"func.php\", {
  36. func: \"drop_2\",
  37. drop_var: $('#drop_2').val()
  38. }, function(response){
  39. $('#result_2').fadeOut();
  40. setTimeout(\"finishAjax_tier_three('result_2', '\"+escape(response)+\"')\", 400);
  41. });
  42. return false;
  43. });
  44. </script>";
  45. }
  46.  
  47.  
  48. //**************************************
  49. // Second selection results //
  50. //**************************************
  51. if($_GET['func'] == "drop_2" && isset($_GET['func'])) {
  52. drop_2($_GET['drop_var']);
  53. }
  54.  
  55. function drop_2($drop_var)
  56. {
  57. echo '<select name="drop_3" id="drop_3" size="7">
  58. <option value=" " disabled="disabled">Delegacja</option>';
  59. echo '<option value="1">Testowy</option>';
  60. echo '<option value="2">Testowy 1</option>';
  61. echo '<option value="3">Testowy 2</option>';
  62. echo '<option value="4">Testowy 3</option>';
  63. echo '<option value="5">Testowy 4</option>';
  64. echo '</select> ';
  65. echo '<input type="submit" name="submit" value="Submit" />';
  66. }
  67.  


Proszę o pomoc, pozdrawiam.
d3ut3r
Firebug twoim przyjacielem smile.gif

po wykonaniu requesta do func.php jest zwracana dalsza część strony (doctype i cała struktura). Po wszystkich echo dodaj:



powinno pomóc
Barcelona
Kolego właśnie mam firebuga, ale kompletnie nie wiem jak wykorzystać go do szukania błędów na stronie :/
Exit; pomogło, dziękuje bardzo smile.gif

A wiesz może jak zrobić aby "Submit" pokazał się po wybraniu ostatniej opcji? Bo teraz pokazuje się odrazu z ostatnim selectem :/
Pozdrawiam

Rozwiązałem problem, dziękuje za pomoc.
EOT
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.