Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Pomocy. Po wybraniu w polu selekt wyświetlenie tekstu w polu imput
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
Bogdan
Witam, jestem laikiem jeśli chodzi o javascript a zależy mi na malutkim skrypcie który po wybraniu z listy selekt wyświetli mi tekst w polu imput formularza. Będę wdzięczny za pomoc i liczę na waszą przychylność.
Byłbym wdzięczny gdyby ten skrypt był oparty na funkcjach, natomiast odwołania po id getElementById" title="Zobacz w manualu php" target="_manual

Z górę dziękuję i pozdrawiam sad.gif




  1.  
  2. 1
  3. 2
  4. 3
  5. ........
  6. nowy poszukiwany skrypt
  7. .........
  8. ...........
  9.  
  10.  
  11.  
  12. <select name="galeria" size="1">
  13. <option value="">wybierz</option>
  14. <option value="1">1</option>
  15. <option value="2">2</option>
  16. <option value="3">3</option>
  17. <input id="opisselekt" size="30" type="text" name="opisgal" value="1" readonly />



Jeszcze raz dziękuję i pozdrawiam
batman
  1. <script type="text/javascript">
  2.  
  3. function addText() {
  4. var g = document.forms["formularz"].galeria.value;
  5. document.getElementById("opisselekt").value = g;
  6. }
  7.  
  8.  
  9. <form name="formularz">
  10. <select name="galeria" size="1" onchange="addText();">
  11. <option value="">wybierz</option>
  12. <option value="1">1</option>
  13. <option value="2">2</option>
  14. <option value="3">3</option>
  15. <input id="opisselekt" size="30" type="text" name="opisgal" value="1" readonly="" />
  16. </form>
Bogdan
Batman

Wielkie dzięki
Cytat
<script language="javascript">
function show()
{
var lista = document.getElementById("lista");
if (lista.selectedIndex && lista.selectedIndex!=-1)
alert(lista.selectedIndex);
else
alert("nic nie wcisnieto");
}
</script>

<select id="lista" multiple="1">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>

<input type="button" onclick="show();" />



Ale jest problem, ponieważ skrypt nie potrafi sobie pobrać z bazy i chodzi mi o to aby pobrać jednocześnie do skryptu i do selekt. W tedy w momencie wybierania selekt będzie się pojawiać w polu input.


poniżej kod php który już mam
  1.  
  2. echo "<script type=\"text/javascript\">\n";
  3. echo "function addText() {\n";
  4. echo "var g = document.forms[\"upload\"].galeria.value;\n";
  5. echo "document.getElementById(\"opisselekt\").value = g;\n";
  6. echo "}\n";
  7. echo "</script>\n";
  8.  
  9. echo "Galeria <select name=\"galeria\" onchange=\"addText();\" class=\"inputbuton\">\n";
  10. echo "<option value=\"\">Wybierz galerię</option>\n";
  11. $gal      = "SELECT * FROM zdjecia_$strgaleria GROUP BY galeria";
  12. $wynikgal  = mysql_query($gal);
  13. while($rowgal = mysql_fetch_array($wynikgal))
  14. {
  15.      echo "<option value=\"".$rowgal['galeria']."\">". $rowgal['opisgal']."</option>\n";
  16. }
  17. echo "</select>\n";
  18.  
  19. echo "<input id=\"opisselekt\" size=\"30\" type=\"text\" name=\"opisgal\" value=\"\" readonly=\"\" class=\"inputbuton\" />";



Będę wdzięczny za pomoc
smile.gif
batman
Nie do końca rozumiem, co ma pobrać z bazy i gdzie wstawić. Sądzę, że problem może leżeć po stronie zapytania SQL. Zamiast gruop by wstaw order by, pewnie o to chodziło (chyba, że chcesz grupować po tym polu).

W jaki sposób objawia się "nie działanie"?
batman
Trochę błędów masz w kodzie.

- Znacznik style nie powinien być w <form>, co więcej - nie powinien być w <body>
- Niektóre elementy formularza nie znajdują się z <form>
- Znaczniki <script> powinny być w jednym miejscu, najlepiej razem w jedym znaczniku (nie jest to wymagane, ale brzydko wygląda winksmiley.jpg )
- atrybuty powinny być w "
- znacznik <form> nie powinien mieć / na końcu

- nie onload, lecz document.onload

Popraw te błędy, to powinno zadziałać.
Bogdan
Już poprawiłem i zmieniłem Twój skrypt, ale pojawił sie inny problem.
Co zrobić aby w polu input zamiast 1, 2, 3 pojawiało się 1a, 2a, 3a
snitch.gif

  1. <script type="text/javascript">
  2.  
  3. function addText() {
  4. var g = document.getElementById("galselekt").value;
  5. document.getElementById("opisselekt").value = g;
  6. }
  7.  
  8.  
  9. Galeria <select id="galselekt" name="galeria" class="inputbuton" onchange="addText();">
  10. <option value="">Wybierz galerię</option>
  11. <option value="1"> 1a </option>
  12. <option value="2"> 2a </option>
  13. <option value="3"> 3a </option>
  14. <input id="opisselekt" size="30" type="text" name="opisgal" value="" readonly="" class="inputbuton" />




Dzięki i pozdrawiam
batman
By zadziałało musisz zamiast:

Kod
var g = document.forms["upload"].galeria.value;


wstawić:

Kod
var g = document.forms["upload"].lista.value;


galeria jest nazwą (name) select-a, a potrzebujesz użyć id.

Tak na marginesie. Twój kod JS generuje błąd:

"document.getElementById("galeria" + i) has no properties"

Dzieje się tak dlatego, ponieważ nie masz elementu galeria3 w dokumencie. Możesz dodać ten element lub w pętli for zamienić "<=3" na "<3" (funkcja onload).


EDIT
Kod
document.getElementById("opisselekt").value = g + "a";
Bogdan
Batman

Wielkie dzięki za pomoc

Pozdrawiam
Bartek_z
Witam, może ktoś mi też pomoże bo mam bardzo podobnym problem ale js to dla mnie "terra incognita" sad.gif
POtrzebuje po wybraniu z selecta wstawić od razu jego wartość do zmiennej sesyjnej. Oczywiście przed przesłaniem formularza. Dane do wyboru są brane z tablicy wcześniej wypełnionej.

  1. <?
  2. <SELECT NAME='hostid' style=\"font-family:'Courier New CE'; width:250px\">";
  3. echo "<OPTION SELECTED VALUE=''>$hostid</OPTION>";
  4. for ($all=0; $all<count($tabhost); $all++) echo "<OPTION>$tabhost[$all]</OPTION>";
  5. echo "</SELECT>";
  6.  
  7. $wybor= właśnie wybór z tego selecta przed przesłaniem forma
  8.  
  9. ?>

Z góry dziękuje za pomoc.
Bartek
cmos-pl
Witam

Też skorzystałem z porady po drobnej przeróbce na cennik z wyświetlaniem ceny netto i brutto w osobnych kolumnach. Ale mam pytanie czy można tak to przerobić żeby wartości były wyświetlane na środku oraz pogrubione ? No i żeby po mnożeniu były tylko 2 cyfry po przecinku. guitar.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.