AJAX hívás után select értéke nincs a POST-ban
Sziasztok
A problémám továbbra is fennáll mégiscsak.
Egy form-on belül van 1 SELECT menü és két először DISABLED SELECT.
Első SELECT vátozás hatására meghívódik a lenti AJAX kód:A div tartalma AJAX előtt:Ajax hívás után:És amint az látható a két eredetileg DISABLED div (#oktato_elso és #rendszam_elso) tartalma átvált egy-egy választható SELECT menüre. Ezekben is kiválasztom a megfelelő oktatót és rendszámot, majd nyomok a küldés gombra.
Az #iskola_id SELECT értéke ott van a POST-ban de az oktato és rendszam nem létezik.
Annyit még hozzáteszek, hogy 10 iskola SELECT van az oldalon, de mindnek egyedi az azonosítója, és mind egy-egy form
Mi lehet a baj?
■ A problémám továbbra is fennáll mégiscsak.
Egy form-on belül van 1 SELECT menü és két először DISABLED SELECT.
Első SELECT vátozás hatására meghívódik a lenti AJAX kód:
$( "#iskola_id" ).on("change", function() {
var valasztott_id = $(this).val();
$.ajax({
method: "post",
url: "select_oktato.php",
data: { id: valasztott_id },
})
.done(function( data ) {
$("#oktato_elso").html( data );
})
});
$( "#iskola_id" ).on("change", function() {
var valasztott_id = $(this).val();
$.ajax({
method: "post",
url: "select_rendszam.php",
data: { id: valasztott_id },
})
.done(function( data ) {
$("#rendszam_elso").html( data );
})
});
<div id="oktato_elso">
<select class="form-control" id="oktato_id" disabled>
<option>Válassz iskolát</option>
</select>
</div>
<div id="oktato_elso">
<select class="form-control" id="oktato_id" name="oktato_id">
<option value="0" selected="selected">Válassz oktatót</option><option value="50">Ősz Ferenc</option>
</select>
</div>
Az #iskola_id SELECT értéke ott van a POST-ban de az oktato és rendszam nem létezik.
Annyit még hozzáteszek, hogy 10 iskola SELECT van az oldalon, de mindnek egyedi az azonosítója, és mind egy-egy form
Mi lehet a baj?
Olyan létezik, hogyha két
Ez tényleg alap debug így, végig kell menni minden lépésen. Ahogy nézem megjön a HTML rendben a szerverről, legalábbis azt írod, hogy kicserélte. Meg kell nézni, hogy egyáltalán bent van e a div a form-ban. Ha bent van, és mégsem megy el, akkor meg kell nézni, hogy pontosan milyen post data megy el. Ha ott van a post data-ban, akkor szerver oldali hiba. Ha nincs ott, akkor bugos a böngésző, és érdemes megnézni másik böngészőben is. Ez utóbbit kétlem, legalábbis annyira alap dologról van szó, hogy már rég javítva lett volna, ha van ilyen hiba.
A div benne van a
Sőtt, ha ajax hívás előtt a div tartalmát átírom erre:
De miután választok iskolát és az ajax kitölti a divet, utánna mindegy mit választok ki az oktatók közül, a POST-ban nem hogy az értéke, de maga oktato_id változó sem jelenik meg. Olyan mintha ez a select menü nem is lett volna a html-ben.
Biztos, hogy nem attól függ,
Kétszer ugyanaz az event
Alaphelyzetben ez azt jelenti - mivel nincs tiltva a további eseménykezelés -, hogy mindkettő lefut változtatáskor.
Mindkét esetben a valasztott_id értéke a #iskola_id értékét kapja.
Ezt posztolod be két külön URL-re: select_oktato.php és select_rendszam.php.
Biztos, hogy ez a cél?
A másik, hogy ajax post előtt sehol sem kérdezed le az oktato_id nevű select értékét. Akkor mitől szeretnéd, hogy bekerüljön a post adatok közé?
Mindkét eseménykezelő az #iskola_id értékét kérdezi le, mivel a $(this).val(); annak az értékét fogja visszaadni, amelyik elem kiváltotta az eseményt.
Tippre a két $( "#iskola_id" ).on("change" ... közül az egyik #oktato_id szeretne lenni...
Megjegyzem, hogy ha 10 oktato_id id van egy oldalon, akkor nem fog helyesen működni, nem elég, ha a konténer div-nek van egyedi id-ja.
Mellesleg nem túl célszerű id attribútumnak olyan név, ami tartalmazza szintén, hogy "id".
(Azt nem értem, hogy ehhez miért kell több fórumtéma egyszerre.)
Kevés az információ