ugrás a tartalomhoz

PHP form gond

Blackfriar · 2010. Ápr. 20. (K), 17.52
Sziasztok !
Az alábbi kóddal azt szeretném elérni, hogy amikor a legördülő menüből kiválasztok egy nevet, akkor kiírja a hozzátartozó adatot. A neveket egy xml fájlból tölti a select-be, ez rendben is működik. Viszont amikor kiválasztottam a nevet, akkor az egy pillanatra be is kerül a select mezőbe, de utána megint a "válasszon" jelenik meg és persze nem jelenik meg a névhez tartozó adat sem. Megjegyzem, egy másik szerveren hibátlanul fut a dolog.

<html>
<body>
<form id="xx" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
<select name="val" onChange="document.getElementById('xx').submit()">
<option>válasszon</option>

<?php

if (isset($_POST['val'])) {echo $val;} else {
foreach ($xml->tag as $akarmi) {
if ($akarmi->ido != "") {echo "<option value='".$akarmi->nev."'>".$akarmi->nev."</option>\n";}
}
};
?>

</select>
</form>
</body>
</html>
 
1

ez lemaradt

Blackfriar · 2010. Ápr. 21. (Sze), 11.34
ez még lemaradt a form után

<?php

foreach ($xml->tag as $akarmi) {
if ($akarmi->nev == $val) {echo $akarmi->ido;};
}

?>
2

jó ide bejönni :-))

Blackfriar · 2010. Ápr. 21. (Sze), 17.01
Azért jó ide bejönni. Sok segítőkész ember, meg minden. :-))
1 napi kínlódás után odáig eljutottam, hogy működik a dolog, csak azt nem sikerült megoldani, hogy a form ne fusson le újra (ne kerüljön alaphelyzetbe).
<html>
<body>
<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
<select name="val" onChange="this.form.submit()">

<?php
$tex = '<option>válasszon</option>';

foreach ($xml->tag as $akarmi) {
if ($akarmi->ido != "") {$tex .= '<option value="'.$akarmi->nev.'">'.$akarmi->nev.'</option>';}
};
$tex .= '</select></form>';

echo $tex;

$nev = $_POST['val'];
foreach ($xml->tag as $akarmi) {
if ($akarmi->nev == $nev) {echo $akarmi->ido;};
};

?>
</body>
</html>

Mindazonáltal: amennyire jó tudni lenni néha a PHP, máskor logikátlan és nehézkes. Én így látom. Mint nem szakmabeli, ebből kifolyólag pártatlan és elfogulatlan. :-))
Amúgy meg további jó szórakozást mindenkinek !
3

Ilyesmi

Poetro · 2010. Ápr. 21. (Sze), 17.19
<!DOCTYPE HTML>
<html>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<body>
<form id="xx" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
<?php
// Csinálok egy $tags tömböt, a későbbi feldolgozáshoz.
$tags = array();
$nevek = explode(' ', "Az alábbi kóddal azt szeretném elérni hogy amikor a legördülő menüből kiválasztok egy nevet akkor kiírja a hozzátartozó adatot");
foreach ($nevek as $nev) {
  $tags[] = (object)array('ido' => microtime(TRUE), 'nev' => $nev);
}
// Mostmár van egy $xml objektumom, amit tudok használni a kódodhoz.
$xml = (object)array(
  'tag' => $tags,
);

// Ha volt beküldött adat, akkor kiírom
if (isset($_POST['val'])) {
  foreach ($xml->tag as $akarmi) {
    if ($akarmi->nev == $_POST['val']) {
      print '<pre>';
      print_r($akarmi);
      print '</pre>';
    }
  }
}
?>
<select name="val" onChange="document.getElementById('xx').submit()">
<option>válasszon</option>

<?php
  // Feltöltöm a listát, a megfelelő elem persze ki lesz választva.
  foreach ($xml->tag as $akarmi) {
    if ($akarmi->ido != "") : ?>
      <option value="<?php echo htmlspecialchars($akarmi->nev, ENT_QUOTES);
        if (isset($_POST['val']) && $_POST['val'] == $akarmi->nev) echo '" selected="selected'; ?>">
        <?php echo $akarmi->nev ?>
      </option>
    <?php endif;
  }
?>

</select>
</form>
</body>
</html>
4

köszi

Blackfriar · 2010. Ápr. 21. (Sze), 20.13
Köszönet a hasznos gondolat-ébresztőkért Poetro !

Üdv