Работа с select

Discussion in 'PHP' started by ppk64, 19 Jan 2011.

  1. ppk64

    ppk64 New Member

    Joined:
    3 Oct 2010
    Messages:
    5
    Likes Received:
    0
    Reputations:
    0
    как можно изменять значение второго select в зависимости от первого. не используя java script? Все значения option извлекаются из БД. Допустим select (первый) - "Вывод", а select (второй) банки куда вывести денги (банки извлекаются из БД), А что если мне нужно в select (первый) добавить еще и "Оплата услуг" - то мне нужно чтобы в select (второй) были виды услуг
     
  2. 3lancer

    3lancer New Member

    Joined:
    18 Jan 2011
    Messages:
    25
    Likes Received:
    0
    Reputations:
    0
    Спасибо, ничего не понял :)

    набросай схему хотя бы или со стороны посетителя опиши что должно происходить.
     
  3. b3

    b3 Moderator

    Joined:
    5 Dec 2004
    Messages:
    2,041
    Likes Received:
    933
    Reputations:
    199
    Ето как на ловпланет, когда выбираешь область, в втором выпадающем списке обновляется список городов этой области, реализовано при помощи аякса.
     
    _________________________
  4. ppk64

    ppk64 New Member

    Joined:
    3 Oct 2010
    Messages:
    5
    Likes Received:
    0
    Reputations:
    0
    <?php

    //в этой строке подключаюсь к БД
    $q=mysql_query("SELECT * FROM page_bank");
    $r=mysql_fetch_array($q);
    ?>

    <table width="90%" border="0" align="center">
    <tr>
    <td width="3%">&nbsp;</td>
    <td width="97%">
    <form name="form" id="form">
    Категория
    <br />
    <select name="jumpMenu3" style="width:190" id="jumpMenu3">
    <option style="width:190"><? echo"Вывод";?></option>
    <option style="width:190"><? echo"Вывод";?></option>
    </select>
    <br />
    Валюта<br />

    <script>writeln('<select name="jumpMenu2" id="jumpMenu2" style="width:190">');</script>
    <option style="width:190"><? echo"WMR";?></option>
    </select>
    <br />
    Варианты<br />
    <select name="jumpMenu" style="width:190" id="jumpMenu">
    <? do {
    ?>
    <option value="page/index.php?id=<? echo $r['id']?>"><? echo $r['bank']?></option><?
    } while ($r=mysql_fetch_array($q));?>

    </select>

    <input type="button" name="go_button" id= "go_button" value="Поехали" onClick="MM_jumpMenuGo('jumpMenu','parent',0)" />
    </form></td>
    </tr>
    </table>
     
  5. drim

    drim Member

    Joined:
    27 Aug 2009
    Messages:
    347
    Likes Received:
    33
    Reputations:
    4
    тогда никак, ибо аякс это такой яваскрипт =)
     
  6. ppk64

    ppk64 New Member

    Joined:
    3 Oct 2010
    Messages:
    5
    Likes Received:
    0
    Reputations:
    0
    я с аяксом не работал но 5 мин назад про него читал... можете помочь со скриптом ? помогите пожалуйста
     
  7. ppk64

    ppk64 New Member

    Joined:
    3 Oct 2010
    Messages:
    5
    Likes Received:
    0
    Reputations:
    0
    ну тогда каким нибуть любым другим способом чтобы банки из БД извлекались
     
  8. krypt3r

    krypt3r Elder - Старейшина

    Joined:
    27 Apr 2007
    Messages:
    1,507
    Likes Received:
    389
    Reputations:
    101
    Вот вам материал для размышления. Тут не банки и нет запроса к БД, но это уже ваша задача, как реализовать - адаптировать под ваши условия (читай - писать за вас скрипты) у меня нет желания
    index.html
    Code:
    <html>
    
    <head>
      <title>3 Selects</title>
      <script type="text/javascript" src="../jquery.js"></script>
      <script type="text/javascript">
        $(document).ready (function () {
          $.post ('select.php', {'act': 'countries'},
            function (data) {
              $("#select-1").html ("");
              $("#select-1").append ('<option class="select">Select...</option>');
              for (var i in data)
                $("#select-1").append ("<option class=\"country\" value=\"" + data[i] + "\">"
                  + data[i] + "</option>");
            }, 'json');
          
          $("#select-1").change (function () {
            $("#select-2").html ("");
            var country = $(this).val ();
            $.post ('select.php', {'act': 'cities', 'country': country},
              function (data) {
                $("#select-2").append ('<option class="select">Select...</option>');
                for (var i in data)
                  $("#select-2").append ("<option class=\"city\" value=\""
                    + data[i] + "\">" + data[i] + "</option>");
              }, 'json')
          });
          
          $("#select-2").change (function () {
            $("#select-3").html ("");
            var country = $("#select-1").val ();
            var city = $("#select-2").val ();
            $.post ('select.php', 
              {'act': 'categories', 'country': country, 'city': city},
              function (data) {
                $("#select-3").append ('<option class="select">Select...</option>');
                for (var i in data)
                  $("#select-3").append ("<option class=\"cat\" value=\""
                    + data[i] + "\">" + data[i] + "</option>");
              }, 'json');
          });
        });
      </script>
      <style type="text/css">
        .country {
          color: green;
        }
        .city {
          color: magenta;
        }
        .cat {
          color: red;
        }
      </style>
    </head>
    
    <body>
    
    Choose your country:
    <select id="select-1"></select><br />
    
    Choose your city:
    <select id="select-2"></select><br />
    
    Choose your category:
    <select id="select-3"></select>
    </body>
    
    </html>
    
    select.php:
    PHP:
    <?php
      $arr 
    = array (
        
    'USA' => array (
          
    'Washington' => array ('WA01''WA02''WA03'),
          
    'Dallas' => array ('DA01''DA02''DA03'),
          
    'NewYork' => array ('NY01''NY02''NY03')
        ),
        
    'France' => array (
          
    'Paris' => array ('PA01''PA02''PA03'),
          
    'Lyon' => array ('LY01''LY02''LY03'),
          
    'Rouen' => array ('RO01''RO02''RO03')
        ),
        
    'Russia' => array (
          
    'Moscow' => array ('MO01''MO02''MO03'),
          
    'Peterburg' => array ('PE01''PE02''PE03'),
          
    'Chita' => array ('CH01''CH02''CH03')
        )
      );
      if (
    $_POST['act'] === 'countries') {
        echo 
    json_encode (array_keys ($arr));
      }
      if (
    $_POST['act'] === 'cities') {
        echo 
    json_encode (array_keys ($arr[$_POST['country']]));
      }
      if (
    $_POST['act'] === 'categories') {
        echo 
    json_encode ($arr[$_POST['country']][$_POST['city']]);
      }
    ?>
     
  9. ppk64

    ppk64 New Member

    Joined:
    3 Oct 2010
    Messages:
    5
    Likes Received:
    0
    Reputations:
    0
    спс. попробую разобраться... правда не очень получается...