Автоматическое изменение списка вывода.

phpusershik

Using PHP
Автоматическое изменение списка вывода.

Мне надо, чтобы при выборе в одним селекте менялся список выбора в других но как на PHP или JS зделать.

Вот это главный селек и что-бы он управлял другими селектами:
echo "<a href=\"#\" onclick=\"return addline();\">Add</a></td></tr>";
echo "<tr id=\"newline\" nomer=\"[0]\">";
echo "<td><select size=\"1\" name=\"id[0]\">";
echo "<option value=\"\">Choose No</option>";
$sql = "SELECT mid, mdes FROM mshop ORDER by mid";
$result = mysql_query($sql,$db);
for ($i = 0; $i < @mysql_num_rows($result); $i++) {
$mid = mysql_result($result, $i, "mid");
$mdes = mysql_result($result, $i, "mdes");
echo "<option value=\"$mid\">$mdes </option>";
}
echo "</select>";
 

matross

Новичок
Re: Автоматическое изменение списка вывода.

Автор оригинала: phpusershik
Мне нужно, чтобы при выборе в одним селекте менялся список выбора в других.

Вот это главный селек и что-бы он управлял другими селектами:
echo "<a href=\"#\" onclick=\"return addline();\">Add</a></td></tr>";
echo "<tr id=\"newline\" nomer=\"[0]\">";
echo "<td><select size=\"1\" name=\"id[0]\">";
echo "<option value=\"\">Choose No</option>";
$sql = "SELECT mid, mdes FROM mshop ORDER by mid";
$result = mysql_query($sql,$db);
for ($i = 0; $i < @mysql_num_rows($result); $i++) {
$mid = mysql_result($result, $i, "mid");
$mdes = mysql_result($result, $i, "mdes");
echo "<option value=\"$mid\">$mdes </option>";
}
А onChange юзай... Как только прошло изменение, переход на ту же страничку, только с определонной id...
 

Romantik

TeaM PHPClub
1. С перезагрузкой страницы
2. Без перезагрузки с помощью JavaScript
3. В поиск плиз- обсуждалось не однократно!
 

vladax

Новичок
Никаких проблем тут нет. Ты сделай сначала статику на JS, да пойми как она работает, а потом сгенери JS-массивы, в которых будут лежать данные, с помощью PHP.
 

phpusershik

Using PHP
Автор оригинала: Romantik
phpusershik
vladax тебе ответил.
примеры- воспользуйся поиском.
В примерах нашёл один такой вариант в JS он такой :

document.myform.str.value += ' ';

а в select-е такой:

name="str"


А у меня select такой:

name="str[0]"

Я изменяю который в JS вот так не получается:


document.myform.str[0].value += ' ';

Ничего не работает?
 

vladax

Новичок
Я как то писал такой пример. Сам напросился, теперь разбирайся :)
PHP:
<html>
<BODY bgcolor=#c1c1c1>

<SCRIPT LANGUAGE="JavaScript">
<!--
var maxLength = 10;

     <?php
     $query = "SELECT id, name FROM ".RegionTable." ORDER BY name ASC";
     $result = mysql_query($query) or die (mysql_error());
     while ($row = mysql_fetch_array($result)) {$regions[][$row['id']] = $row['name'];}
     ?>

     ccselect2 = new Array;

     <?php
     $i = 0;
     foreach ($regions as $arr) foreach ($arr as $v) {
          echo "ccselect2[".$i."] =\"".$v."\";\n";
          $i++;
     }
     ?>

     var trueLength = ccselect2.length;
     var lst = ccselect2.length;

     ccselect1 = new Array;

     <?php
     $i = 0;
     foreach ($regions as $arr) foreach ($arr as $v) {
          echo "ccselect1[".$i."] =\"".$v."\";\n";
          $i++;
     }
     ?>


     function changeMenu()
     {
     ccselect2.length = 0;
     menuNum = document.someform.select1.selectedIndex;
     if (menuNum == null) return;

     <?php
     $i = 0;
     foreach ($regions as $arr) foreach ($arr as $k => $v) {
          echo "if (menuNum == ".$i.")
          {
          ccselect2 = new Array;\n";

          $query = "SELECT name FROM ".CitiesTable." WHERE region_id = ".$k;
          $result = mysql_query($query) or die (mysql_error());
          $i1 = 0;
          while ($row = mysql_fetch_array($result)) {
                 echo "ccselect2[".$i1."] = new Option(\"".$row['name']."\");\n";
                 $i1++;
          }
          echo "}\n\n";
          $i++;
     }
     ?>
     
     tot = ccselect2.length;
             for (i = lst; i > 0; i--)
             { document.someform.select2.options[i] = null; }
             for (i = 0; i < tot; i++)
             { document.someform.select2.options[i] = ccselect2[i]; }
             document.someform.select2.options[0].selected = true;
     lst = ccselect2.length;
     }
// -->
</SCRIPT>
<SCRIPT LANGUAGE="JavaScript"><!--
with (document) {
     writeln('<CENTER>');
     writeln('<TABLE BORDER=0 BGCOLOR=#ffffff CELLPADDING=3 CELLSPACING=0>');
     writeln('<TR><TD COLSPAN=3><FORM NAME="someform">');
     writeln('<CENTER><FONT SIZE=4 COLOR=#808080 FACE=ARIAL>');
     writeln('<B>Двойное меню</B></FONT></CENTER>');
     writeln('</TD></TR><TR><TD ALIGN=LEFT>');
     writeln('<FONT SIZE=3 COLOR=#808080 FACE=ARIAL><B>Меню</B></FONT><BR>');
     writeln('<SELECT NAME="select1" onChange="changeMenu(this.form)">');
     tot = ccselect1.length;
         for (i = 0; i < tot; i++)
         writeln("<OPTION>" +ccselect1[i]);
     writeln("</SELECT>");
     writeln('</TD><TD>');
     writeln('<FONT SIZE=3 COLOR=#808080 FACE=ARIAL><B>Субменю</B></FONT><BR>');
     writeln('<SELECT NAME="select2">');
         for (i = 0; i < maxLength; i++)
         writeln("<OPTION>" +ccselect2[i]);
         writeln("</SELECT>");
     writeln('</TD></TR>');
     changeMenu();
     writeln('</FORM>');
     writeln('</TABLE><P><BR><P>');
     writeln('</CENTER>');
     }
// -->
</SCRIPT>
</center>
</BODY>
</HTML>
 

phpusershik

Using PHP
Это слишком нудно для меня, мне посоветовали вот так но сможеш ли ты побыстрому это написать:
//
Сделай один селект. Если остальные поля редактировать надо, замени остальные селекты текстовыми полями, сделай в JS массивы значений соответствующих полей (ид - значение). При onchange селекта выбирай соответствующие значения из массивов и подставляй их в соответствующие поля.
//
Вот мне надо это но я не могу это сделать.
 

phpusershik

Using PHP
Автор оригинала: Мутник
phpusershik

а может за тебя весь сайт человеку написать???
Весь сайт не надо только вот это:

JS массивы значений соответствующих полей (ид - значение).


Заранее спасибо.
 
Сверху