Autor Zpráva
jerremy
Profil *
Dobru noc prajem,

mam jeden dotaz, ktory riesim, no neviem ako to urobit.
Mam nasledujúci skript, ktorým vyťahujem údaje z databázy a dávam ich do <select> - u
<select name="nadpis">
         <?php $vysledek=mysql_query("select * from clanky WHERE kategoria=$cat ORDER BY nadpis ASC ");
    while ($zaznam=MySQL_Fetch_Array($vysledek))  
    { echo '<option value="'.$zaznam["id"].'">'. $zaznam["nadpis"] .'</option>'; } ?>
    
        </select>
<textarea id="text" name="text" style="font-family:arial; font-size = 12pt" rows = "30" cols = "115"></textarea>

A chcel by som, aby po vybraní určitej možnosti sa do textarea dostal $zaznam["text"], teda obsah z databázy.
Môže sa to robiť aj po znovunačitaní stránky keď sa zmení tá možnosť z poľa select.

Ďakujem a prajem pekný večer.
ahoj
Profil *
echo "<select name='nadpis'>";
$vysledek=mysql_query("select * from clanky WHERE kategoria='".$cat."' ORDER BY nadpis ASC");
while ($zaznam=MySQL_Fetch_Array($vysledek)) {
  echo "<option value='".$zaznam["id"]."'";

  if ($_POST["nadpis"]==$zaznam["id"]) {
    $w = $zaznam["text"];
    echo " selected='selected'";
  };
  echo ">".$zaznam["nadpis"]."</option>";
}

echo "</select>";
echo "<textarea id='text' name='text' style='font-family:arial; font-size = 12pt' rows = '30' cols = '115'>";
echo $w;
echo "</textarea>";
jerremy
Profil *
Bohužial ale nefunguje...
Mám takto kód:
<form action="#" method="post">
        <label for="nadpis" style="display:inline;">Vybrať zo zoznamu: </label>
        <select name="nadpis">
         <?php $vysledek=mysql_query("select * from clanky WHERE kategoria=$cat ORDER BY nadpis");
    while ($zaznam=MySQL_Fetch_Array($vysledek))  {
     echo "<option value='".$zaznam["id"]."'";
 
  if ($_POST["nadpis"]==$zaznam["id"]) {
    $w = $zaznam["text"];
    $a = $zaznam["odsek"];
    echo " selected='selected'";
  };
  echo ">".$zaznam["nadpis"]."</option>";
}
?>
    
        </select>
<textarea id="text" name="text" style="font-family:arial; font-size = 12pt" rows = "30" cols = "115"><?php echo $w; ?></textarea>

Nič nevypíše ani v úvode, keď je prvý vybratý a ani pri zmene.
Someone
Profil
Tohle bych řešil pomocí AJAXu.
jerremy
Profil *
Someone:
To by som asi sám nezvládol. Vedel som, že na to treba minimálne JS, ale tam mám základy iba minimálne. Nefunguje niečo ako po zmene selectu sa načíta celá stránka nanovo s tou zmenou?


Someone:
Napríklad ak by som mal ten select a v ňom option s value=$id -> tak po zmene vybraneho "nadpisu" by sa mi napríklad načítala stránka s url: www.nieco.sk/index.php?premenna=$id

To by asi pomohlo? Teda cez funkciu onclick do option by to šlo?


Fungovalo by to?
<script type="text/javascript">

   function changeFunc() {
    var nadpis = document.getElementById("nadpis");
    var selectedValue = selectBox.options[nadpis.selectedIndex].value;
    window.location.href="index.php?text_id="+selectedValue;
   }

  </script>
<form action="#" method="post">
        <label for="nadpis" style="display:inline;">Vybrať zo zoznamu: </label>
        <select name="nadpis" id="nadpis" onchange="changeFunc();">>
         <?php $vysledek=mysql_query("select * from clanky WHERE kategoria=$cat ORDER BY nadpis");
    while ($zaznam=MySQL_Fetch_Array($vysledek))  {
     echo "<option value='".$zaznam["id"]."'";
 
  if ($_POST["nadpis"]==$zaznam["id"]) {
    $w = $zaznam["text"];
    $a = $zaznam["odsek"];
    echo " selected='selected'";
  };
  echo ">".$zaznam["nadpis"]."</option>";
}
?>
    
        </select>
<textarea id="text" name="text" style="font-family:arial; font-size = 12pt" rows = "30" cols = "115"><?php echo $w; ?></textarea>
ahoj
Profil *
jerremy:
Fungovalo by to?

Co kdybys to zkusil?
Kromě toho: máš někde nad tím nadefinované připojení k databázi a zadanou proměnnou $cat?
jerremy
Profil *
Skusil som to svoje a nefunguje.

Mam zadefinovane pripojenie a aj premennu $cat, ktora sa berie z URL
ahoj
Profil *
Jak přesně nefunguje?
Po vybrání selectu se nestane nic? Nebo se stránka znovu načte a nenačte se jen ta textarea? Nebo se stane ještě něco jiného?
jerremy
Profil *
Nestane sa vôbec nič.

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: