BG Development


Страници: (2) [1] 2   ( Първото ново мнение ) Reply to this topicStart new topicStart Poll

> PHP autopopulate dropdown html select option input
Hacko
  Публикувано на: 09-01-2017, 16:20
Quote Post



Име:
Група: Потребител
Ранг: Посетител

Мнения: 63
Регистриран на: 09.09.12



За много години колеги!
Нещо зациклих на един скрипт за промяна на падащо поле.
Имам малка CRUD системка за попълване,редакция и изтриване на редове в Таблица 1.
При редакция на ред си извиквам форма, която зарежда информация от Таблица 1. До тук добре. Но имам полета, които са падащи. В падащото поле Държава, се показва само името на държавата, която е записана в Таблица 1. Как мога да направя така, че да се показват и още много държави за избор? В смисъл да не е само тази държава от записа от Таблица 1. Имам отделна Таблица 2 с всички европейски държави и искам да се показват под държавата записана в таблица 1.
С този код извеждам само записа от таблица 1.:
CODE

<?PHP
<?php
  error_reporting(E_ALL); ini_set('display_errors', 1);

require_once("dbconn.php");

      if(isset($_GET['id']))
{
$id=$_GET['id'];

      $result = $pdo->prepare("SELECT EU_Fuel_Price.id,
                        convert(VARCHAR(24),manual_datetime,113) as manual_datetime,EU_Fuel_Price.company_name,EU_Fuel_Price.country,EU_Fuel_Price.town,EU_Fuel_Price.price,db_countries.idcountry,db_countries.country_name FROM EU_Fuel_Price INNER JOIN db_countries ON EU_Fuel_Price.id=db_countries.idcountry WHERE EU_Fuel_Price.id = :id");
      $result->bindParam(':id', $id, PDO::PARAM_STR);
      $result->execute();
      
             while($row=$result->fetch(PDO::FETCH_ASSOC)){
?>

 <option  value="<?php echo $row['idcountry']; ?>" selected><?php echo $row['country_name']; ?></option>
<?php
}
}
?>

Благодаря на отзовалите се!

Това мнение е било редактирано от Hacko на 09-01-2017, 16:35
PMEmail Poster
Top
ivan84
Публикувано на: 09-01-2017, 16:25
Quote Post



Име:
Група: Форумен член
Ранг: Почетен член

Мнения: 8170
Регистриран на: 01.04.11



Ми сигурно със "some query", знам ли ...
PMEmail Poster
Top
Hacko
Публикувано на: 09-01-2017, 16:34
Quote Post



Име:
Група: Потребител
Ранг: Посетител

Мнения: 63
Регистриран на: 09.09.12



QUOTE (ivan84 @ 09-01-2017, 16:25)
Ми сигурно със "some query", знам ли ...

Дадох целия код, ако мислиш , че там трябва да променя.
PMEmail Poster
Top
ivan84
Публикувано на: 09-01-2017, 16:39
Quote Post



Име:
Група: Форумен член
Ранг: Почетен член

Мнения: 8170
Регистриран на: 01.04.11



Ми добави си едно union all и листни данните от втората таблица де (ще трябва да сложиш фиктивни полета за останалите данни).
Ако не държиш да минеш с една заявка си пусни отделна за държавите.
PMEmail Poster
Top
soNewbie
Публикувано на: 09-01-2017, 16:40
Quote Post



Име:
Група: Потребител
Ранг: Новопостъпил

Мнения: 16
Регистриран на: 03.12.16



А защо ги зареждаш от таблица 1 където ще ти е 1 държава? Защо не ги заредиш всички от таблица 2 и просто не ти е селектнато това ID което ти е в таблица 1 ?
PM
Top
Hacko
Публикувано на: 09-01-2017, 17:03
Quote Post



Име:
Група: Потребител
Ранг: Посетител

Мнения: 63
Регистриран на: 09.09.12



QUOTE (ivan84 @ 09-01-2017, 16:39)
Ми добави си едно union all и листни данните от втората таблица де (ще трябва да сложиш фиктивни полета за останалите данни).
Ако не държиш да минеш с една заявка си пусни отделна за държавите.

Ако искам с друга заявка, как да ги изведа в съществуващия while?
PMEmail Poster
Top
ivan84
Публикувано на: 09-01-2017, 17:08
Quote Post



Име:
Група: Форумен член
Ранг: Почетен член

Мнения: 8170
Регистриран на: 01.04.11



В същия никак. С един цикъл извеждаш данните за горивата а с друг, вложен в първия, си обхождаш масивът с държавите (който си създал предварително, за да не пуснеш 100 пъти една и съща заявка при всяка итерация).

Нещо такова
CODE
while($row = $result->fetch(PDO::FETCH_ASSOC)) {
      ...
      foreach($countries as $id => $name) {
            printf(
                  '<option  value="%d" selected="%s">%s</option>',
                  $id,
                  $row['idcountry'] == $id ? 'selected', '',
                  $name
            );
      }
      ...
}


Това мнение е било редактирано от ivan84 на 09-01-2017, 17:13
PMEmail Poster
Top
Hacko
Публикувано на: 09-01-2017, 17:39
Quote Post



Име:
Група: Потребител
Ранг: Посетител

Мнения: 63
Регистриран на: 09.09.12



QUOTE (ivan84 @ 09-01-2017, 17:08)
В същия никак. С един цикъл извеждаш данните за горивата а с друг, вложен в първия, си обхождаш масивът с държавите (който си създал предварително, за да не пуснеш 100 пъти една и съща заявка при всяка итерация).

Нещо такова
CODE
while($row = $result->fetch(PDO::FETCH_ASSOC)) {
      ...
      foreach($countries as $id => $name) {
            printf(
                  '<option  value="%d" selected="%s">%s</option>',
                  $id,
                  $row['idcountry'] == $id ? 'selected', '',
                  $name
            );
      }
      ...
}

Извинявай, но само нещо не разбирам, този код не е ли за javascript?
CODE
<option  value="%d" selected="%s">%s</option>


Сори, намерих какво означават тези букви icon_smile.gif

Това мнение е било редактирано от Hacko на 09-01-2017, 17:43
PMEmail Poster
Top
rvc
Публикувано на: 09-01-2017, 23:56
Quote Post



Име:
Група: Потребител
Ранг: Почетен член

Мнения: 2467
Регистриран на: 13.05.11



ти хубаво ги изкарваш тия държави в <option> ама <select> има ли преди това?
PMEmail PosterUsers Website
Top
Hacko
Публикувано на: 10-01-2017, 09:24
Quote Post



Име:
Група: Потребител
Ранг: Посетител

Мнения: 63
Регистриран на: 09.09.12



QUOTE (rvc @ 09-01-2017, 23:56)
ти хубаво ги изкарваш тия държави в <option> ама <select> има ли преди това?

Има да, просто тук съм забравил да го сложа.
PMEmail Poster
Top
1 потребители преглеждат тази тема в момента (1 гости, 0 анонимни потребители)
Потребители, преглеждащи темата в момента:

Topic Options Страници: (2) [1] 2  Reply to this topicStart new topicStart Poll

 


Copyright © 2003-2015 | BG Development | All Rights Reserved
RSS 2.0