Most akkor hogy is van ez a php változókezelés?
2002-05-17T20:11:31+02:00
2002-05-23T20:12:10+02:00
2022-07-27T22:42:57+02:00
  • Hmmm?
    Mutasd a teljes hozzászólást!
  • ???sechole????
    Mutasd a teljes hozzászólást!
  • Rájöttem, hogy kicsit nagyon hülye vagyok :)
    hmmm.... form.submit().... hmmm...
    Na mind1, már fáratt vagyok picit. Megyek aludni... :)

    Zzzzz...
    Mutasd a teljes hozzászólást!
  • Sikerült megoldani, hogy onchange esetén frissíti az oldalt, de sajna csak javascript-el, és így a php nem kapja meg a változóneveket, amikor frissül az oldal. :(

    Azt kéne megoldanom, hogy onchange-re a form action lefusson az aktuális selected értéket átadva a php-nek.

    Javascriptből végrehajthatom az aktuális form-on az action-t?
    Mutasd a teljes hozzászólást!
  • Köszi! Mostmár működik.
    Viszont lenne egy másik kérdésem:
    -Adott két MySQL tábla.
    -A táblákban van egy olyan mező, amely mindkettőben ugyanazon a néven szerepel. (Legyen mondjuk "azonosoito")
    Ez az "azonosító" a két tábla kapcsolatát jelenti, az első táblában ez egyedi, a másodikban nem. Tehát 1->n kapcsolat van a két tábla között az "azonosito" mező alapján.
    -Két 'legördülő" menüben (FORM->SELECT) megjelenítem az első ill. a második tábla egy-egy mezőjét.
    -Azt szeretném megoldani, hogyha az első táblához tartozó mezőben kiválasztok egy elemet, akkor a második táblához tartozó mezőben már csak azon rekordok megfelelő mezője jelenjenek meg amelyeknek az "azonosito" mező értéke megeggyezik az első mezőben kiválasztott elem azonosítójával. Tehát az első mező alapján szűröm a második mező elemeit.
    -Ráadásul mivel a második mezőben nem azonosítót listázok, hanem egy másik mezőt, ezért a második listában kiválaszott elemhez több azonosító is tartozhat, tehát azt is meg kellene oldani, hogyha a második mezőben választok ki egy elemet, akkor az első mezőben csak azok az elemek jelenjenek meg, melyeknek az azonosítója megeggyezik a második mezőben kiválasztott elemhez tartozó azonosítókkal.

    Ez elméletileg egy egyszerű feladat lenne, egy szűréssel és egy kereséssel, csakhogy a probléma a html-php-ban történő megvalósításból ered, ugyanis:
    -Ha kirakok egy formot és abban két selectet és egy submitet, akkor csak azután változtathatom meg bármelyik listát, miután egy submit-el (OK-gomb) elküldöm az eredményt. Tehát ha bármelyik select értéke megváltozik, akkor a másik select listáját nem tudom automatikusan változtatni, csak ha előtte nyomok egy ok-gombot (submit).
    -Megoldás lehetne, hogy két formot rakok ki, egyenként egy-egy select-el. Csak arra nem jöttem rá, hogy a form action submit-gomb nélkül mikor kerül meghívásra. Az lenne az idális, hogyha a select onchange bekövetkezik, akkor automatikusan küldje el a form-ot. Ekkor tudnám frissíteni a másik select listáját.
    -Egyetlen megoldás, hogy két form, két submit-gombbal, de ez meg ronda és kényelmetlen.

    Ötletek?
    Mutasd a teljes hozzászólást!
  • Ezekrol a tombokrol leginkabb a PHP dokumentacioban olvashatsz, aminek magyar forditas is letoltheto a PHP: Hypertext Preprocessor cimrol (most eppen valamiert nem megy a szerver, amikor irom ezt).

    Egyebkent ezek tok sima asszociativ tombok. Valahogy igy kell hasznalni oket:

    function dummy()
    global $HTTP_GET_VARS;
    {
    echo "A \\\\\\\\\\\\\\\\"proba\\\\\\\\\\\\\\\\" nevu form-valtozo erteke: ".$HTTP_GET_VARS["proba"];
    }

    Fontos, hogy GET metodus eseten (<FORM METHOD="GET") a $HTTP_GET_VARS, mig POST metodus eseten a $HTTP_POST_VARS tartalmazza a form mezoinek nevet es erteket.
    Mutasd a teljes hozzászólást!
  • Köszi! :) Igazad volt, a register_globals off-on volt, ezért nem ment. A HTTP_POST_VARS ill. HTTP_GET_VARS tömbök működéséről kicsit bővebben írhatnál, nem sokat találtam ezekről...
    Mutasd a teljes hozzászólást!
  • Egyreszt az OPTION-nek nem a NAME, hanem a VALUE property-je kerul visszakuldesre a formban.

    Masreszt ha meg mindig nem megy, nezd meg, hogy a php.ini-ben a a register_globals opcio be van -e kapcsolva. Ugyanis ez hatarozza meg, hogy automatikusan globalis valtozokent legyenek -e definialva a POST ill. GET metodusok parameterei.
    A helyedben en mindenesetre nem is kapcsolnam be, hanem a HTTP_POST_VARS ill. HTTP_GET_VARS tombon keresztul ernem el a kapott form valtozokat. Sokkal tisztabb modszer, es kevesbe konnyu sechole-t helyezni vele az alkalmazasba.
    Mutasd a teljes hozzászólást!
  • Azt hiszem nem teljesen világos a php változókezelése. Olvastam az erre vonatkozó cikkeket, de sajnos az ott leírtak nagy része nekem nem működik.
    A rendszer: Apache, PHP4, MySQL.
    Amit próbáltam megoldani: Egy MySQL adatbázisból kikeresem az összes táblanevet, majd a kapott eredményt egy legördülő menüben (form-select-option) jelenítem meg, hozzácsapok egy submit-et, és várom, hogy szépen megjelenjen a kiválasztott tábla.
    Amit sikerült: A lista megvan, a MySQL-ből vett táblanevek megjlennek, ki is lehet választani.
    Ami nem megy: A submit után nem érem el az átadott változót.
    Ahogy csináltam:
    1.fájl: listaz.php:
    ...
    <?php
    print "<br><H1 align='center'>Válassz adatbázist</H1>";
    print "<form align='center' action='feldolgoz.php'>";
    print "<select name='valasztott'>";
    while ($line = mysql_fetch_array($tablalista, MYSQL_ASSOC)){
    foreach ($line as $egy_tabla)
    { print "<option name=".$egy_tabla." >".egy_tabla."</option>"; }
    }
    print"</select>";
    print"<input type="."submit"." value="."L&aacute;ssuk!".">";
    print "</form>";
    ?>

    2.fájl: feldolgoz.php:
    <?php print "A választott tábla: ".$valasztott." lett"; ?>

    Eredmény: "Notice: Undefined variable: valasztott in..."

    Hol rontottam el? (Azon kívül, hogy egyátalán nekiálltam ennek a php-nek :)

    Másik: A cikkben hivatkoznak egy bizonyos PHP_SELF változóra, ami ha jól értem arra lenne jó, hogy saját magát hívja meg, így nem kell új fájl, illetve a form alatt meg lehet jeleníteni az eredményt. Namármost az én drága php-m szerint PHP_SELF változó nincs. Hogy is van ez?
    Mutasd a teljes hozzászólást!
abcd