Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP]Zapisanie zapytania do bazy danych z select bez przeładowania strony
timeo
post
Post #1





Grupa: Zarejestrowani
Postów: 71
Pomógł: 0
Dołączył: 28.06.2011

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


Hejka
Mam taki kod i chciałbym, żeby po wybraniu z listy rozwijanej do bazy została zapisana dana i zmieniła się ona w wyświetlanym select bez przeładowania strony. Da się to jakoś zrobić? Pomożecie?
  1. <form action='' method='POST'>
  2. <label for="Serwisant" class="col-md-4 text-left ">Serwisant:</label>
  3. <div class="col-md-8 text-right">
  4. <select class="btn-info" id="dropdown" onchange="function()" data-width="75%" data-style="btn-info" id="Ktorobil" name="Ktorobil" >
  5.  
  6. <option value="<?php echo $row['Ktorobil']; ?>" selected="selected"><?php echo $row['Ktorobil']; ?></option>
  7. <option value="XXXXXX" <?php if($row['Ktorobil']=="XXXXXX") {echo 'selected="selected"';} ?>>XXXXXX</option>
  8. <option value="YYYYYYY" <?php if ($row['Ktorobil']=="YYYYYYYY") {echo 'selected="selected"';} ?>>YYYYYY</option>
  9. <option value="ZZZZZZ" <?php if($row['Ktorobil']=="ZZZZZZZZ") {echo 'selected="selected"';} ?>>ZZZZZZ</option>
  10.  
  11. </select>
  12.  
  13. <input type="hidden" name="przypisanieserwisanta" value="przypisanieserwisanta">
  14. <input type="hidden" name="ticket" value="<?php echo $row['ticket']; ?>">
  15. </form>
  16. </div></div>


Kod do bazy
  1. if(isset($_POST['przypisanieserwisanta']))
  2. {
  3.  
  4. $stmt = $db->prepare("UPDATE mobidoktor SET Ktorobil= :Ktorobil WHERE ticket = :ticket");
  5. $stmt -> bindValue(':ticket',$_POST['ticket'], PDO::PARAM_STR);
  6. $stmt -> bindValue(':Ktorobil',$_POST['Ktorobil'], PDO::PARAM_STR);
  7. $stmt -> execute();
  8.  
  9. }
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
woxala123
post
Post #2





Grupa: Zarejestrowani
Postów: 361
Pomógł: 12
Dołączył: 9.01.2010

Ostrzeżenie: (10%)
X----


Tylko najlepiej z ajaxem.
https://www.w3schools.com/php/php_ajax_database.asp
https://www.sitepoint.com/community/t/php-j...-refresh/101804
http://stackoverflow.com/questions/3630042...-reloading-page
http://stackoverflow.com/questions/1015758...oading-the-page
http://stackoverflow.com/questions/4016680...the-page-in-php

Ten post edytował woxala123 18.03.2017, 19:00:37
Go to the top of the page
+Quote Post
phpamator
post
Post #3





Grupa: Zarejestrowani
Postów: 328
Pomógł: 3
Dołączył: 10.07.2016
Skąd: UK-raine

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


Ajax, Ajax, Ajax
Go to the top of the page
+Quote Post
Rysh
post
Post #4





Grupa: Zarejestrowani
Postów: 821
Pomógł: 111
Dołączył: 11.09.2006
Skąd: Biała Podlaska

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


Kod
$('#Ktorobil').change(function() {
$.ajax({
  type: "POST",
  url: url,
  data: data,
  success: success,
  dataType: dataType
});
});
Go to the top of the page
+Quote Post
timeo
post
Post #5





Grupa: Zarejestrowani
Postów: 71
Pomógł: 0
Dołączył: 28.06.2011

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


A teraz pytanko jak zrobić żeby z tego select jeszcze wysłać na przykład nr ID, z którego pola jest wysyłane zapytanie. This.form.submit przełodwuje stronę a tego nie chcę. Może jest jakaś inna opcja.

Dobra mam coś takiego. Co poprawić?
  1. <select class="btn-info" id="newElementsName" onchange="addElement('<?php $ticket = $row['ticket']; echo $ticket; ?>')" data-width="75%" data-style="btn-info" name="Ktorobil" >
  2.  
  3. <option value="<?php echo $row['Ktorobil']; ?>" selected="selected"><?php echo $row['Ktorobil']; ?></option>
  4. <option value="<?php echo $row['Ktorobil']; ?>" selected="selected"><?php echo $row['Ktorobil']; ?></option>
  5. <option value="XXXXXX" <?php if($row['Ktorobil']=="XXXXXX") {echo 'selected="selected"';} ?>>XXXXXX</option>
  6. <option value="YYYYYYY" <?php if ($row['Ktorobil']=="YYYYYYYY") {echo 'selected="selected"';} ?>>YYYYYY</option>
  7. <option value="ZZZZZZ" <?php if($row['Ktorobil']=="ZZZZZZZZ") {echo 'selected="selected"';} ?>>ZZZZZZ</option>
  8.  
  9. </select>

Oraz kod JS
  1. function addElement(){
  2. // get new name
  3. var name = $("#newElementsName").val();
  4. // create ajax call
  5. $.ajax({
  6. type: "POST",
  7. url: "update.php", // URL to php script
  8. data: { // post data for php script (I use the data from your form (including the typo))
  9. ticket: $ticket,
  10. Ktorobil: this.value,
  11. save: 'Save'
  12. },
  13. success: function(data){
  14. // this function will be called when php script run successful (HTTP-Status 2xx)
  15. // Clear the input filed
  16. $("#newElementsName").val('');
  17. // Add new name to dropdown
  18. $("#newElementsName").append("<option>"+name+"</option>");
  19. }
  20. });
  21.  
  22. }


Nikt nic?

Ok. A teraz Panowie - bo się głowię i nie mogę dojść do ładu.
Poniżej Kod JS oraz w pętli
  1. <script>
  2. function addElement(){
  3. var all_select = document.getElementsByTagName("select");
  4. for (i = 0; i < all_select.length; i++) {
  5. all_select[i].onchange = function () {
  6. alert(this.value);
  7.  
  8. }
  9. }
  10.  
  11. $.ajax({
  12. method: "POST",
  13. url: "update.php", // URL to php script
  14. data: {
  15. ticket: ticket, name: all_select
  16. },
  17. success: function(data){
  18. alert('Przypisano');
  19. $("#newElementsName").val('');
  20.  
  21. $("#newElementsName").append("<option>"+all_select+"</option>");
  22. }
  23. });
  24.  
  25. }
  26. </script>



Select są w pętli, więc może być ich kilka. Pytanie jak sobie pobrać do elementu "dataticket" z select i przypisać go do funkcji? Pomożecie?


  1. <?php
  2. foreach ($stmt as $row)
  3. { ?>
  4. <select class="btn-info" id="newElementsName" onchange="addElement()" dataticket="<?php echo $ticket; ?>" data-width="75%" data-style="btn-info" name="Ktorobil" >
  5.  
  6. <option value="<?php echo $row['Ktorobil']; ?>" selected="selected"><?php echo $row['Ktorobil']; ?></option>
  7. <option value="<?php echo $row['Ktorobil']; ?>" selected="selected"><?php echo $row['Ktorobil']; ?></option>
  8. <option value="XXXXXX" <?php if($row['Ktorobil']=="XXXXXX") {echo 'selected="selected"';} ?>>XXXXXX</option>
  9. <option value="YYYYYYY" <?php if ($row['Ktorobil']=="YYYYYYYY") {echo 'selected="selected"';} ?>>YYYYYY</option>
  10. <option value="ZZZZZZ" <?php if($row['Ktorobil']=="ZZZZZZZZ") {echo 'selected="selected"';} ?>>ZZZZZZ</option>
  11.  
  12. </select>
  13. <?php
  14. }
  15. ?>


Ten post edytował timeo 20.03.2017, 15:31:57
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 22.08.2025 - 11:57