Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP]Wartość Przypisana Do select Value
timeo
post
Post #1





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

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


Witajcie.

Mam taki kod oparty na JS. Przekazuje mi wartość do bazy po zapytaniu ID a chciałbym żeby do bazy wysyłał mi nazwę Marki z pola w sql. Label Marka, select name "marka" - wysyła mi do bazy numer ID.

  1. <br><label>Marka</label><br>
  2. <select name="marka" class="a" id="marka" >
  3. <option value=""> Wybierz Markę</option>
  4. <?php
  5. $result = $db->query('SELECT * FROM Marki');
  6. // $result ->execute();
  7. //
  8. $key = $result->fetchAll(PDO::FETCH_ASSOC);
  9.  
  10. foreach ($key as $marki)
  11. {
  12. ?>
  13. <option value="<?php echo $marki["Marka_ID"]; ?>"><?php echo $marki["Marka"];?> </option>
  14. <?php
  15.  
  16. }
  17.  
  18. ?>
  19. </select>
  20. <br><br>
  21. <label>Model</label><br>
  22. <select name="model" id="listamodeli" class="a">
  23. <option value=""></option></select>
  24.  


  1. $przyjecie = $db -> prepare('INSERT INTO `mobidoktor` (`klient`, `ticket`, `Przyjecie`, `szklo` ,`rodzaj`, `imei`, `uwagi`, `model3`,`brand2`,`BOK`,`opakowanie`,`ladowarka`,`kolor`,`Status`,`corobione`,`u
    wagidoserwisu`,`rodzajklient`) VALUES(
  2. :klient,:ticket,:datapr,:szklo,:serwisD2D,:imei,:uwagi,:model3,:brand2,:BOK,:opa
    kowanie,:ladowarka,:kolor,:status,:rodzaj,:uwagidoserwisu,:rodzajklient)'
    ); // 1
  3.  
  4. $przyjecie -> bindValue(':klient', $_POST['klient'], PDO::PARAM_STR); // 2
  5. $przyjecie -> bindValue(':ticket', $_POST['ticket'], PDO::PARAM_STR);
  6. $przyjecie -> bindValue(':rodzaj', $_POST['category'], PDO::PARAM_STR);
  7. $przyjecie -> bindValue(':szklo', $_POST['szklo'], PDO::PARAM_STR);
  8. $przyjecie -> bindValue(':imei', $_POST['imei'], PDO::PARAM_INT);
  9. $przyjecie -> bindValue(':uwagi', $_POST['uwagi'], PDO::PARAM_STR);
  10. $przyjecie -> bindValue(':serwisD2D', $_POST['serwisD2D'], PDO::PARAM_STR);
  11. $przyjecie -> bindValue(':model3', $_POST['marka'], PDO::PARAM_STR);
  12. $przyjecie -> bindValue(':brand2', $_POST['model'], PDO::PARAM_STR);
  13. $przyjecie -> bindValue(':BOK', $_POST['BOK'], PDO::PARAM_STR);
  14. $przyjecie -> bindValue(':opakowanie', $_POST['opakowanie'], PDO::PARAM_STR);
  15. $przyjecie -> bindValue(':ladowarka', $_POST['ladowarka'], PDO::PARAM_STR);
  16. $przyjecie -> bindValue(':uwagidoserwisu', $_POST['uwagidoserwisu'], PDO::PARAM_STR);
  17. $przyjecie -> bindValue(':datapr',$czas, PDO::PARAM_STR);
  18. $przyjecie -> bindValue(':kolor', $_POST['kolor'], PDO::PARAM_STR);
  19. $przyjecie -> bindValue(':status', $_POST['status'], PDO::PARAM_STR);
  20. $przyjecie -> bindValue(':rodzajklient', $_POST['rodzajklient'], PDO::PARAM_STR);
  21.  
  22. try {
  23. $przyjecie->execute();
  24.  
  25. echo '<h2>'."Zapisano do bazy.".'</h2>';
  26. } catch (PDOException $exception) {
  27. die($exception->getMessage());
  28. }
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 10)
viking
post
Post #2





Grupa: Zarejestrowani
Postów: 6 380
Pomógł: 1116
Dołączył: 30.08.2006

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


No patrz, rzecz niesłychana. Od kiedy to option przesyła to co zdefiniowane w value? Koniec ironii. Podstaw markę i problem z głowy.


--------------------
Go to the top of the page
+Quote Post
timeo
post
Post #3





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

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


Podstawić markę gdzie pod Value?
Go to the top of the page
+Quote Post
viking
post
Post #4





Grupa: Zarejestrowani
Postów: 6 380
Pomógł: 1116
Dołączył: 30.08.2006

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


Dobra. Jak masz selecta name=marka
to var_dump($_POST) po wysłaniu formularza co zwróci w przypadku:

<option>marka1</option>

oraz

<option value=1>marka1</option>


--------------------
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%)
-----


Po wysłaniu POST
  1. <option value="<?php echo $marki["Marka_ID"]; ?>"><?php echo $marki["Marka"];?> </option>

Otrzymuję
  1. ["marka"]=> string(2) "17"

Natomiast jeśli wyrzucę value=" .... " to niestety skrypt przestaje mi działać. Chyba muszę bardziej pomyśleć, bo jestem tępy.
Go to the top of the page
+Quote Post
viking
post
Post #6





Grupa: Zarejestrowani
Postów: 6 380
Pomógł: 1116
Dołączył: 30.08.2006

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


Tak? A ja dla

  1. <form method=post>
  2. <select name=marka>
  3. <option>marka 1</option>
  4. <option>marka 2</option>
  5. <option>marka 3</option>
  6. </select>
  7. <input type=submit value=send>
  8. </form>


dostaję
Kod
array(1) { ["marka"]=> string(7) "marka 3" }


I co to znaczy przestaje działać? Jakiś błąd wyświetla?


--------------------
Go to the top of the page
+Quote Post
timeo
post
Post #7





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

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


Przestaje działać to znaczy z pliku getdata.php nie odczytuje wartości Marki
Poniżej kody
  1. <form method="POST" action="<?php echo $_SERVER['PHP_SELF']; ?>" >
  2.  
  3. Klient<br><input type="text" name="klient" id="klient" class="a" required placeholder="Klient"><br><br>
  4. Rodzaj Klienta:<br><label><input type="radio" required name="rodzajklient" value="indywidualny" >Klient indywidualny
  5. <label><input type="radio" name="rodzajklient" value="serwis">Serwis/ Klient biznesowy<br>
  6. <br><input type="text" name="ticket" id="ticket" class="a" required placeholder="Ticket" ><br>
  7.  
  8. <br>
  9. <br>Szkło hartowane<br><select name="szklo" class="a" >
  10. <option>Nie</option>
  11. <option>Tak</option>
  12. </select><br>
  13. <br>IMEI:<br><input type="number" name="imei" id="imei" class="a" maxlength="15" placeholder="IMEI 15 znaków" ><br>
  14.  
  15. <br><label>Marka</label><br>
  16. <select name="marka" class="a" id="marka" >
  17. <option value=""> Wybierz Markę</option>
  18. <?php
  19. $result = $db->query('SELECT * FROM Marki');
  20.  
  21. $key = $result->fetchAll(PDO::FETCH_ASSOC);
  22.  
  23. foreach ($key as $marki)
  24. {
  25. ?>
  26. <option value="<?php echo $marki["Marka_ID"]; ?>"><?php echo $marki["Marka"];?> </option>
  27. <?php
  28.  
  29. }
  30.  
  31. ?>
  32. </select>
  33. <br><br>
  34. <label>Model</label><br>
  35. <select name="model" id="listamodeli" class="a">
  36. <option value=""></option></select>


GETDATA:
  1. <?php
  2. include ("../configbase.php");
  3.  
  4.  
  5. if (!empty($_POST["Marka_ID"])){
  6.  
  7. //$cid = $_POST["CID"];
  8. $result = $db->prepare("SELECT * FROM cennikmobi10 WHERE Marka_ID = :cid group by Model");
  9. $result -> bindValue(':cid', $_POST["Marka_ID"], PDO::PARAM_INT);
  10. $result -> execute();
  11.  
  12. foreach ($result as $model)
  13. {
  14. ?>
  15. <option value="<?php echo $model["Model"]; ?>"><?php echo $model["Model"]; ?></option>
  16. <?php
  17. }
  18. }
  19. ?>


KOD JS
  1. <script src="//code.jquery.com/jquery-3.1.1.min.js"></script>
  2. <script>
  3. function getId(val){
  4.  
  5. $.ajax({
  6. type: "POST",
  7. url: "getdata.php",
  8. data: "Marka_ID="+val,
  9. success: function(data){
  10. $('#listamodeli').html(data);
  11. }
  12.  
  13. });
  14. }
  15. $(function(){
  16. $('select[name="marka"]').on('change', function(e) {
  17. getId(this.value);
  18. });
  19. });
  20. </script>
Go to the top of the page
+Quote Post
viking
post
Post #8





Grupa: Zarejestrowani
Postów: 6 380
Pomógł: 1116
Dołączył: 30.08.2006

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


PDO::PARAM_INT

Nie sądzisz że skoro chcesz wysyłać stringa to powyższy zapis jest bez sensu? Już kiedyś miałeś zdaje się kilka stron dyskusji jak sprawdzać swój kod, gdzie szukać zwracane dane.


--------------------
Go to the top of the page
+Quote Post
timeo
post
Post #9





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

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


Miałem wacko.gif Przepraszam biję się w pierś

Chodzi Ci o ten zapis?
  1. $result -> bindValue(':cid', $_POST["Marka_ID"], PDO::PARAM_INT);
?
Tylko tam jest INT bo to jest liczba

Ten post edytował timeo 9.11.2016, 15:07:14
Go to the top of the page
+Quote Post
viking
post
Post #10





Grupa: Zarejestrowani
Postów: 6 380
Pomógł: 1116
Dołączył: 30.08.2006

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


Przecież twój wątek polega na tym że nie chcesz liczby tylko markę. A marka jak rozumiem jest stringiem.


--------------------
Go to the top of the page
+Quote Post
timeo
post
Post #11





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

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


Zrobiłem Tak i działa (może od strony tylnych liter ale mi będzie pasować)
  1. $mareczk = $db->prepare("SELECT * FROM cennikmobi10 WHERE Marka_ID = :cid group by Model LIMIT 1");
  2. $mareczk-> bindValue(':cid', $_POST["marka"], PDO::PARAM_STR);
  3. $mareczk -> execute();
  4. foreach ($mareczk as $model)
  5. {
  6. $markatego=$model['Marka'];
  7. }
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: 20.08.2025 - 01:56