Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript][MySQL][PHP] dynamiczne uzupełnianie
Forum PHP.pl > Forum > Przedszkole
ufoxxx
Witam,
mam tabele adresy, w ktorej jest nazwa, ulica, kod pocztowy i miejscowosc.
Zalozmy ze tabela jest wypelniona danymi i w momencie gdy wypelniam inny formularz np. korespondencja, wypelniam poszczegolne dane i chce aby adres byl wypelniany dynamicznie, tzn wybieram nazwe i automatycznie uzupelnia mi sie ulica kod itp.
Prosze o propozycje jak to mniej wiecej rozwiazac :-P
gawar
Za pomocą Ajaxa pobierz dane z bazy i uzupełnij je w formularzu.
ufoxxx
Jakis przykladzik? Mam formularz z opcja rozwinieca i tam rozwijaja sie te adresy.
ilidir
wyślij zapytanie przy pomocy AJAXA do bazy danych nastepnie odbierz sobie to iwprowadz przy pomocy javascrit do odpowiednich pól twojego formularza.

Przykłady:

  1. <select id="select_wybor_id" class="select_wybor_class" size="2" onClick="wybor()" >
  2. <option name="wybor" value="radni">radni</option>
  3. <option name="wybor" value="komisje">komisje</option>
  4. </select>



a oto przykładowy skrypt Javascript z wykorzystaniem AJAX

  1. function wybor() {
  2. var wybor = $('.select_wybor_class').val(); //przypisujemy wybor czy radni czy komisje z listy rozwijanej
  3. $.ajax({
  4. type: "POST",
  5. url: "wiad_ajax.php",
  6. dataType : 'json',
  7. data: {
  8. dana1 : wybor, //przypisanie zmiennych dowysylki
  9. },
  10. success : function(json) {
  11. var select_success = document.getElementById('select_rk_id'); //przypisanie do zmiennej wartosci elementu
  12. for (i=0;i<=json.length;i++)
  13. {
  14. var option_success = document.createElement("option"); //tworzymy obiekt option
  15. option_success.setAttribute("value", json[i]);
  16. option_success.text = ""+json[i]+""; //przypisujemy do niego odebrane wartosci z ajaxa
  17. select_success.appendChild(option_success); //dodanie stworzonego optiona do select
  18. }
  19. },
  20. error : function(error) {
  21. alert("Jest kłopot");
  22. }
  23. });
  24.  
  25. }
  26.  




To przykład kodu w pliku wiad_ajax.php jest zapytanie SQL-owe oraz przekazanie jsonem danych spowrotem do Ajaxa:

przekazanie danych:

  1. echo json_encode($tablica); - w tym przypadku przekazuje tabele ktora jest odbierana powyzej.
ufoxxx
Nie moge tego ogarnąć, potrzebuje wiecej wskazówek tongue.gif Jak klikne nazwe adresata to mają uzupełnić się pola ulica, kod pocztowy, miejscowosc i tu jest problem sad.gif
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5. <link href="dist/css/bootstrap.min.css" rel="stylesheet">
  6. <link href="dist/css/bootstrap-theme.min.css" rel="stylesheet">
  7. <link href="css/theme.css" rel="stylesheet">
  8. <link rel="stylesheet" href="css/jquery-ui.css" type="text/css" media="all" />
  9. <script type="text/javascript" src="js/jquery.js"></script>
  10. <script type="text/javascript" src="js/jquery-ui.js"></script>
  11. <title>Poczta wysłana</title>
  12. <script type="text/javascript">
  13. $(document).ready(function()
  14. {
  15. var DataWysylki1Opts =
  16. {
  17. dateFormat: 'yy-mm-dd',
  18. changeMonth: false,
  19. changeYear: false,
  20. showButtonPanel: false,
  21. showAnim: 'show'
  22. };
  23. $("#DataWysylki").datepicker(DataWysylki1Opts);
  24. });
  25. </script>
  26. </head>
  27. <body role="document">
  28. <div class="container theme-showcase" role="main">
  29. <?php
  30. include ("db_fns.php");
  31. db_connect();
  32. if (isset($_POST['DataWysylki'])) {
  33. $DataWysylki = $_POST['DataWysylki'];
  34. $rodzajpoczty = $_POST['rodzajpoczty'];
  35. $ZnakSprawy = $_POST['ZnakSprawy'];
  36. $NazwaAdresata = $_POST['NazwaAdresata'];
  37. $Adres = $_POST['Adres'];
  38. $KodPocztowy = $_POST['KodPocztowy'];
  39. $Miejscowosc = $_POST['Miejscowosc'];
  40. $TrescWysylki = $_POST['TrescWysylki'];
  41. $IdOdebrane = $_POST['IdOdebrane'];
  42. if (($DataWysylki == '') || ($ZnakSprawy == '') || ($TrescWysylki == '') || ($IdOdebrane == '')) {
  43. echo '<p style="color: red;">Nie wypełniłeś jednego z pól</p>';
  44. }
  45. else {
  46. $ZnakSprawy = mysql_real_escape_string($ZnakSprawy);
  47. $DataWysylki = mysql_real_escape_string($DataWysylki);
  48. $rodzajpoczty = mysql_real_escape_string($rodzajpoczty);
  49. $NazwaAdresata = mysql_real_escape_string($NazwaAdresata);
  50. $Adres = mysql_real_escape_string($Adres);
  51. $KodPocztowy = mysql_real_escape_string($KodPocztowy);
  52. $Miejscowosc = mysql_real_escape_string($Miejscowosc);
  53. $TrescWysylki = mysql_real_escape_string($TrescWysylki);
  54. $IdOdebrane = mysql_real_escape_string($IdOdebrane);
  55.  
  56. $zapytanie = "SELECT * FROM`odbierzpoczte` WHERE IdOdebrane = '$IdOdebrane' AND`status`LIKE'wyslane'";
  57. $w = mysql_query($zapytanie);
  58. $rekord = mysql_fetch_assoc($w);
  59. $status = $rekord['status'];
  60. if ($status == 'wyslane')
  61. {
  62. echo 'Błąd!!! Poczta <b>'.$IdOdebrane.'</b> została już wysłana';
  63. echo '<form id="form1" name="form1" method="post" action="pocztawyslana.php">
  64. <input type="submit" class="btn btn-default" value="Powrót" />
  65. </form>';
  66. }
  67. $zapytanie2 = "SELECT * FROM`odbierzpoczte` WHERE IdOdebrane = '$IdOdebrane' AND`status`LIKE'kierownik'";
  68. $w2 = mysql_query($zapytanie2);
  69. $rekord2 = mysql_fetch_assoc($w2);
  70. $status2 = $rekord2['status'];
  71. if ($status2 == 'kierownik')
  72. {
  73. echo 'Błąd!!! Poczta <b>'.$IdOdebrane.'</b> jest u kierownika, nie możesz wysłać';
  74. echo '<form id="form1" name="form1" method="post" action="pocztawyslana.php">
  75. <input type="submit" class="btn btn-default" value="Powrót" />
  76. </form>';
  77. }
  78.  
  79. $zapytanie = 'INSERT INTO wyslijpoczte SET '
  80. .'ZnakSprawy="'.$ZnakSprawy.'", '
  81. .'DataWysylki="'.$DataWysylki.'", '
  82. .'rodzajpoczty="'.$rodzajpoczty.'", '
  83. .'NazwaAdresata="'.$NazwaAdresata.'", '
  84. .'Adres="'.$Adres.'", '
  85. .'KodPocztowy="'.$KodPocztowy.'", '
  86. .'Miejscowosc="'.$Miejscowosc.'", '
  87. .'TrescWysylki="'.$TrescWysylki.'", '
  88. .'IdOdebrane="'.$IdOdebrane.'"';
  89. $ok = mysql_query($zapytanie);
  90. if ($ok === false) die('nie można było dodać danych do bazy ' .mysql_error());
  91.  
  92. $sql = "UPDATE odbierzpoczte SET status='wyslane' WHERE IdOdebrane = '$IdOdebrane'" ;
  93. $ok2 = mysql_query($sql);
  94. if ($ok2 === false) die('nie można było dodać danych do bazy ' .mysql_error());
  95. echo "Baza została uzupełniona\n";
  96. echo '<form id="form1" name="form1" method="post" action="nadlesniczy.php">
  97. <input type="submit" class="btn btn-default" value="Powrót" />
  98. </form>';
  99.  
  100. header("location:komunikatwyslana.php");
  101. mysql_close(db_connect());
  102. }}
  103. ?>
  104. <div class="row">
  105. <div class="col-md-8">
  106. <form role="form" name="OdbierzPoczte" method="POST">
  107. <legend>Poczta wysłana</legend>
  108.  
  109. <div class="form-group">
  110. <label for="ZnakSprawy">Znak Sprawy</label>
  111. <input type="text" name="ZnakSprawy" id="ZnakSprawy" class="form-control"/>
  112. </div>
  113.  
  114. <div class="form-group">
  115. <label for="DataWysylki">Data wysłania</label>
  116. <input name="DataWysylki" id="DataWysylki" class="form-control"/>
  117. </div>
  118.  
  119. <div class="form-group">
  120. <label for="rodzajpoczty">Rodzaj</label>
  121. <select name="rodzajpoczty" id="rodzajpoczty" class="form-control">
  122. <option>Faktura</option>
  123. <option>Pismo</option>
  124. <option>Oferta</option>
  125. <option>Pismo polecone</option>
  126. </select>
  127. </div>
  128.  
  129. <div class="form-group">
  130. <label for="NazwaAdresata">Adresat</label>
  131. <select name="NazwaAdresata" id="NazwaAdresata" class="form-control" onClick="wybor()"/>
  132. <?php
  133. $query = 'SELECT NazwaAdresata FROM adresat GROUP BY NazwaAdresata';
  134. $results = mysql_query($query) or die(mysql_error());
  135. while($row = mysql_fetch_assoc($results))
  136. {
  137. echo '<option>';
  138. foreach($row as $value)
  139. echo ($value);
  140. echo "\n";
  141. echo '</option>';
  142. }
  143.  
  144. ?></select>
  145. </div>
  146.  
  147. <div class="form-group">
  148. <label for="Adres">Ulica</label>
  149. <input name="Adres" id="Adres" class="form-control"></textarea>
  150. </div>
  151.  
  152. <div class="form-group">
  153. <label for="KodPocztowy">Kod pocztowy</label>
  154. <input name="KodPocztowy" id="KodPocztowy" class="form-control"></textarea>
  155. </div>
  156.  
  157. <div class="form-group">
  158. <label for="Miejscowosc">Miejscowosc</label>
  159. <input name="Miejscowosc" id="Miejscowosc" class="form-control"></textarea>
  160. </div>
  161.  
  162. <div class="form-group">
  163. <label for="TrescWysylki">Treść poczty</label>
  164. <textarea name="TrescWysylki" id="TrescWysylki" class="form-control"></textarea>
  165. </div>
  166.  
  167. <div class="form-group">
  168. <label for="IdOdebrane">IdOdebrane</label>
  169. <input type="text" name="IdOdebrane" id="IdOdebrane" class="form-control"/>
  170. </div>
  171.  
  172. <input type="submit" class="btn btn-default" value="Dodaj" />
  173. </fieldset>
  174. </form>
  175. </div>
  176. </div>
  177. </div> <!-- /container -->
  178. </body>
  179. </html>
ilidir
A gdzie Ty kolego masz tego Ajaxa smile.gif
ufoxxx
Zrobiłem sobie testowe pliki i chce zeby wyswietlało się w tych formularzach w poscie wyżej, nie wiem czy to jest dobry przykład, ale nie działa mi w takiej postaci:
test2.php
  1. <html>
  2. <head>
  3. <script>
  4. function showUser(str) {
  5. if (str == "") {
  6. document.getElementById("txtHint").innerHTML = "";
  7. return;
  8. } else {
  9. if (window.XMLHttpRequest) {
  10. // code for IE7+, Firefox, Chrome, Opera, Safari
  11. xmlhttp = new XMLHttpRequest();
  12. } else {
  13. // code for IE6, IE5
  14. xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
  15. }
  16. xmlhttp.onreadystatechange = function() {
  17. if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
  18. document.getElementById("txtHint").innerHTML = xmlhttp.responseText;
  19. }
  20. }
  21. xmlhttp.open("GET","test3.php?q="+str,true);
  22. xmlhttp.send();
  23. }
  24. }
  25. </script>
  26. </head>
  27. <body>
  28.  
  29. <form>
  30. <select name="adresat" onchange="showUser(this.value)">
  31. <?php
  32. include ("db_fns.php");
  33. db_connect();
  34. $query = 'SELECT NazwaAdresata FROM adresat GROUP BY NazwaAdresata';
  35. $results = mysql_query($query) or die(mysql_error());
  36. while($row = mysql_fetch_assoc($results))
  37. {
  38. echo '<option value="$value">';
  39. foreach($row as $value)
  40. echo ($value);
  41. echo "\n";
  42. echo '</option>';
  43. }
  44.  
  45. ?>
  46. </select>
  47. </form>
  48. <br>
  49. <div id="txtHint"><b>Person info will be listed here...</b></div>
  50.  
  51. </body>
  52. </html>


test3.php
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <style>
  5. table {
  6. width: 100%;
  7. border-collapse: collapse;
  8. }
  9.  
  10. table, td, th {
  11. border: 1px solid black;
  12. padding: 5px;
  13. }
  14.  
  15. th {text-align: left;}
  16. </style>
  17. </head>
  18. <body>
  19.  
  20. <?php
  21. $q = intval($_GET['q']);
  22.  
  23. $con = mysqli_connect('localhost','root','');
  24. if (!$con) {
  25. die('Could not connect: ' . mysqli_error($con));
  26. }
  27.  
  28. mysqli_select_db($con,"poczta");
  29. $sql="SELECT * FROM adresat WHERE IdAdresat = '".$q."'";
  30. $result = mysqli_query($con,$sql);
  31.  
  32. echo "<table>
  33. <tr>
  34. <th>Nazwa</th>
  35. <th>Ulica</th>
  36. <th>Kod pocztowy</th>
  37. <th>Miejscowosc</th>
  38. </tr>";
  39. while($row = mysqli_fetch_array($result)) {
  40. echo "<tr>";
  41. echo "<td>" . $row['NazwaAdresata'] . "</td>";
  42. echo "<td>" . $row['Adres'] . "</td>";
  43. echo "<td>" . $row['KodPocztowy'] . "</td>";
  44. echo "<td>" . $row['Miejscowosc'] . "</td>";
  45. echo "</tr>";
  46. }
  47. echo "</table>";
  48. mysqli_close($con);
  49. ?>
  50. </body>
  51. </html>


Wie ktos jak to ogarnąc?
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.