[PHP] Formularz - automatyczne tworzenie pól

0

Witam.
Mam taki kodzik:

<?php

(...)

echo("<form method=\"post\" action=\"index.php\">\n");
echo(" <select name=\"ile\">\n");
for ($i=1; $i<=10; $i++) { echo("  <option> $i\n"); }
echo(" </select><br>");
echo(" <input type=\"submit\" value=\"KLIK\">\n");
echo("</form>\n");

(...)

?>

I chciałem zrobić coś takiego, że automatycznie po wybraniu liczby zostanią wypisane liczby od 1 do tej liczby pod spodem. Jak to zrobic aby to się robiło od razu po wybraniu pola, a nie po kliknięciu w button??


Z góry dziękuję za odpowiedzi :)

0

To jest kwestia JS, nie PHP - w skrócie - wykorzystaj zdarzenie onchange w select.

0

Hmmm... Zrobiłem tak jak pisałeś ale został jeszcze jeden problem :/ Otóż kod wygląda na razie tak:

<script language="JavaScript">
function tworz_pola(form){
 if (form.ile.value == "2")
 document.write("WYBRANO 2 !!!");
}
</script>

<?php
echo("<form method=\"post\" action=\"index.php\">\n");
echo("<select name=\"ile\" onChange=\"tworz_pola(this.form)\">\n");
for ($i=1; $i<=10; $i++) { echo("  <option> $i\n"); }
echo(" </select><br>");
echo(" <input type=\"submit\" value=\"GŁOSUJ\">\n");
echo("</form>\n");
?>

Zrobiłem na razie tylko tak dla przykładu by wypisywał coś na ekranie gdy wybierze się cyfrę 2. Ale cały ekran się "czyści" i dopiero się pokazuje tekst :/ Jak zrobic aby tekst dopisał się pod formularzem??

// Hmmm... W sumie to powinno się dopisywać w formularzzu między <form>, a </form> to to mają być pola formularza... Teraz to ja już kompletnie nie wiem jak to zrobić :/

0

document.write jest niepolecane i absolutnie nieprzewidywalne w przypadku obsługi zdarzeń. Użyj choćby innerHTML, albo jeszcze lepiej czegoś bardziej dostosowanego do sytuacji (value, albo coś takiego, wszystko zależy od tego, z czego korzystasz).

0
<script language="JavaScript">
function tworz_pola(form){ 
 if (form.ile.value) {
   var s = '';
   for (var i=0; i<form.ile.value; i++) s+= " "+(i+1);
   document.getElementById('liczby').innerHTML = s;
  }
}
</script>

<?php
echo("<form method=\"post\" action=\"index.php\">\n");
echo("<select name=\"ile\" onChange=\"tworz_pola(this.form)\">\n");
for ($i=1; $i<=10; $i++) { echo("  <option> $i\n"); }
echo(" </select><br>");
echo(" <input type=\"submit\" value=\"GŁOSUJ\">\n");
echo(" <div id=\"liczby\"></div>\n");
echo("</form>\n");
?>

Jesli dobrze zrozumialem o co Ci chodzi :] (i nie sie nie pomylilem wpisujac kod :P)

0

Chyba OK. Poradziłem sobie już sam :D Mój kodzik jest podobny. Brakowało mi tylko tego innerHTML zamiast document.write :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1