Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [js] przy zmianie option pojawiajace sie input
rzseattle
post 3.12.2003, 20:09:49
Post #1





Grupa: Przyjaciele php.pl
Postów: 554
Pomógł: 0
Dołączył: 4.04.2002
Skąd: Tychy

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


Chodzi mi cos takiego ze w select mam dwie wartosci "Watch action" i "Watch user", no i chce zeby przy zmianie wartosci na "Watch action" pojawialy mi sie 2 inputy (tekst) "action" i "module" a przy wyborze "Watch user" 1 pole "user"

Da sie wogole cos takiego zrobic??


--------------------
"Real children don't go hoppity-skip unless they are on drugs."
Go to the top of the page
+Quote Post
FiDO
post 3.12.2003, 20:24:20
Post #2





Grupa: Przyjaciele php.pl
Postów: 1 717
Pomógł: 0
Dołączył: 12.06.2002
Skąd: Wolsztyn..... Studia: Zielona Góra

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


Da sie, ale (zreszta napewno zdajesz sobie z tego sprawe smile.gif ) prawdopodobnie nie zadziala na niczym innym niz IE, Mozilla, Opera.

Najprosciej chyba jakbys mial calego forma w tabeli, np. w pierwszym rzedzie tego selecta, drugi rzad to inputy action i modul, a 3 rzad to user.
Teraz na poczatku wyswietlona jest jedna z opcji, wiec jeden row musi zniknac.. no to znika.. dajesz mu style="display: none;"
Teraz musisz tylko dac funkcje monitorujaca zdarzenie onChange selecta, ktora bedzie zamieniala widocznosc (display: none/block) tych dwoch rzedow.


--------------------
Brak czasu :/
Go to the top of the page
+Quote Post
rzseattle
post 3.12.2003, 20:35:55
Post #3





Grupa: Przyjaciele php.pl
Postów: 554
Pomógł: 0
Dołączył: 4.04.2002
Skąd: Tychy

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


Dzieki FIDO.

Szczeze mowiac bylem leniwy i mialem nadzieje ze ktos funkcja sypnie, no ale coz pokombinuje nad tym smile.gif .


--------------------
"Real children don't go hoppity-skip unless they are on drugs."
Go to the top of the page
+Quote Post
FiDO
post 3.12.2003, 21:01:21
Post #4





Grupa: Przyjaciele php.pl
Postów: 1 717
Pomógł: 0
Dołączył: 12.06.2002
Skąd: Wolsztyn..... Studia: Zielona Góra

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


No co Ty... nawet gotowe zupki z paczki trzeba zalac woda winksmiley.jpg



---
ok... hint winksmiley.jpg
[xml:1:d22274ba15]<script type="text/javascript">
function zmien(frm)
{
obj1 = frm.pole1.parentElement.parentElement;
obj2 = frm.pole2.parentElement.parentElement;

if (obj1.style.display == 'none')
{
obj1.style.display = 'block';
obj2.style.display = 'none';
}
else
{
obj1.style.display = 'none';
obj2.style.display = 'block';
}
}
</script>
<form >
<table border="1" cellpadding="2" cellspacing="0" >
<tr>
<td>
<select name="wybor" size="1" onchange="zmien(this.form);">
<option value="1">Cos tam</option>
<option value="2">Cos tam2</option>
</select>
</td>
</tr>
<tr style="display: block;">
<td>
<input type="text" name="pole1" value="jeden" />
</td>
</tr>
<tr style="display: none;">
<td>
<input type="text" name="pole2" value="dwa" />
</td>
</tr>
</table>
</form>
[/xml:1:d22274ba15]


--------------------
Brak czasu :/
Go to the top of the page
+Quote Post
Wankster
post 3.12.2003, 22:03:52
Post #5





Grupa: Zarejestrowani
Postów: 208
Pomógł: 0
Dołączył: 19.04.2003

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


Kod
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

    

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">

<head>

    <title></title>

    

    <style type="text/css">

    <!--

    

  div#actionFields

  {

     display: inline;

  }

    

    //-->

    </style>

    <script type="text/javascript">

    <!--

    

  function changeAction( id )

  {

     AF = document.getElementById( 'actionFields' );

    

     switch ( parseInt( id ) )

     {

    case 1:

        AF.innerHTML  = newInput( 'text', 'action', '' );

        AF.innerHTML += newInput( 'text', 'module', '' );

    break;

    

    case 2:

        AF.innerHTML  = newInput( 'text', 'user', '' );

    break;

    

    default:

        AF.innerHTML = '';

    break;

     }

  }

  

  function newInput( type, name, value, style )

  {

     return '<input type="' + type + '" name="' + name + '" value="' + value + '" style="' + style + '" />';

  }

    

    //-->

    </script>

</head>



<body>

    <form name="watch" action="">

  <select name="action" id="action" size="1" onchange="changeAction( this.value );">

     <option>Choose</option>

     <option> </option>

     <option value="1">Watch action</option>

     <option value="2">Watch user</option>

  </select>

  <div id="actionFields"></div>

    </form>

</body>

</html>
O to chodziło? 8O

EDIT:
FiDO smile.gif
Go to the top of the page
+Quote Post
rzseattle
post 3.12.2003, 22:51:58
Post #6





Grupa: Przyjaciele php.pl
Postów: 554
Pomógł: 0
Dołączył: 4.04.2002
Skąd: Tychy

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


Nie no klasa. Wlasnie czegos takiego poszukiwalem.

Dzieki wielkie .


--------------------
"Real children don't go hoppity-skip unless they are on drugs."
Go to the top of the page
+Quote Post
rzseattle
post 28.12.2003, 00:48:10
Post #7





Grupa: Przyjaciele php.pl
Postów: 554
Pomógł: 0
Dołączył: 4.04.2002
Skąd: Tychy

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


version 2

Wasze rozwiazanie (FiDOa Wankstera winksmiley.jpg) tak mi sie spodobalo ze postanowilem przy ich pomocy tworzyc cale formularze - dzieki czemu naprawde zaoszczedze wiele czasu na przygotowanie osobnych szablonow i akcji do pokazywania formularzy.
Natrafilem jednak na pewien problem - po stworzeniu formularza nie chce go wysylac sad.gif . Kiedy stosuje zwyklego submita nic sie nie dzieje a kiedy zastosuje onclick="document.nazwa_forma.submit()" wyskakuje
Cytat
Błąd: missing ; before statement
Kod źródłowy:
document.3.submit();


Hmm moze pokaze kod:
Kod
function changeAction( sub_group_id )

      {

         AF = document.getElementById( sub_group_id );

               form = "<form action='{l}index.php?m=acces_module|a=show_groups{/l}' method='post' name='" + sub_group_id +  "'>";

               AF.innerHTML  = form;

               AF.innerHTML += newInput( 'text', 'name', form );

               AF.innerHTML += newInput( 'hidden', 'sub_group_id', sub_group_id );

               submit = "onClick ='document." + sub_group_id + ".submit();'";

               AF.innerHTML += newInput( 'submit', '', 'Add', '', submit  );

               AF.innerHTML += "</form>";



      }



      function newInput( type, name, value, style, action )

      {

         return '<input type="' + type + '" name="' + name + '" value="' + value + '" style="' + style + '" ' + action +' />';

      }

no i oczywiscie
Kod
<div id="{$group.id}" style="display: inline;"><a href="javascript:changeAction( '{$group.id}' );"> +</a></div>


Czyzbym cos przegapil?


--------------------
"Real children don't go hoppity-skip unless they are on drugs."
Go to the top of the page
+Quote Post
rzseattle
post 29.12.2003, 12:37:39
Post #8





Grupa: Przyjaciele php.pl
Postów: 554
Pomógł: 0
Dołączył: 4.04.2002
Skąd: Tychy

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


dobra z tym problemem sobie poradzilem (dodalem "form_" napoczatku nazwy formularza i poszlo). Problem w tym ze mimo ze niby wysyla formularz ale tak na nastepnej stronie nie widac danych wprowadzonych w nowo stworzone inputy. Wiec moje pytanie brzmi - Czy wogole da sie w js dynamicznie tworzyc formularze, czy od razu mam sobie z tym dac spokoj?


--------------------
"Real children don't go hoppity-skip unless they are on drugs."
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 27.04.2024 - 13:45