PHP_SELF után a jquery-t figyelmen kívül hagyja

PHP_SELF után a jquery-t figyelmen kívül hagyja
2014-04-27T21:38:59+02:00
2014-04-29T17:50:47+02:00
2022-12-01T00:20:38+01:00
bogdanypeter
Sziasztok!

A lenti kód ellenőrzi a formot és ha valami nem jól van kitöltve visszatér önmagába! Az a probléma az, hogy miután visszatér a jquery scriptet figyelmen kívül hagyja. Konkrétan elérhetőség ki és bekapcsolást (disabled true és false). Azt szeretném, hogy miután visszatér, akkor egyből kattintás nélkül ugyan úgy tegye a dolgát, mint a form első betöltésekor. (Fizetés a termék átvételekor (Utánvét) radio kijelölésekor a következő radio csoportból scak az alsó kettő legyen akítív, a többi passzív, illetve ha az első csoportból az első három radio checknél a második csoport első négy gombja legyen aktív, azutolsó kettő pedig passzív!)

<HTML> <HEAD> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <link href="form.css" rel="stylesheet" type="text/css"> <link type="text/css" rel="stylesheet" href="http://fonts.googleapis.com/css?family=Lato:300,400,700"></link> <script type="text/javascript" src="http://code.jquery.com/jquery.js"></script> <script> $(document).ready(function(){ $('input[name="dp1036"]').click(function(){ if($(this).attr("value")=="utánvét"){ $("#PickPack").prop({disabled: true }); $('input[value="4990 Ft"]').prop({ disabled: true, checked: false}); $('input[value="5890 Ft"]').prop({ disabled: true, checked: false}); $('input[value="6690 Ft"]').prop({ disabled: true, checked: false}); $('input[value="5790 Ft"]').prop({ disabled: true, checked: false}); $('input[value="6390 Ft"]').prop({ disabled: false}); $('input[value="5990 Ft"]').prop({ disabled: false}); } else{ $("#PickPack").prop({disabled: true }); $('input[value="4990 Ft"]').prop({ disabled: false}); $('input[value="5890 Ft"]').prop({ disabled: false}); $('input[value="6690 Ft"]').prop({ disabled: false}); $('input[value="5790 Ft"]').prop({ disabled: false}); $('input[value="6390 Ft"]').prop({ disabled: true, checked: false}); $('input[value="5990 Ft"]').prop({ disabled: true, checked: false}); } }); $('input[name="dp1038"]').click(function(){ if($(this).attr("value")=="5790 Ft"){ $("#PickPack").prop({ selectedIndex: 0, disabled: false}); } else if($(this).attr("value")=="5990 Ft") { $("#PickPack").prop({ selectedIndex: 0, disabled: false}); } else{ $("#PickPack").prop({ selectedIndex: 0, disabled: true}); } }); }); function masolo(f) { if(f.masol.checked == true) { f.dp1074.value =f.dp1034.value; } else { f.dp1074.value =""} } </script> </HEAD> <BODY> <?php error_reporting(0); $name=$email=$dp1034=$dp1035=$dp1036=$dp1038=$dp1039=$dp1074=""; $nameErr=$emailErr=$dp1034Err=$dp1035Err=$dp1036Err=$dp1038Err=$dp1039Err=$dp1074Err=""; if ($_SERVER['REQUEST_METHOD']== "POST") { $valid = true; if (empty($_POST["name"])) { $nameErr = "A név megadása kötelező!"; $valid = false; } else { $name = test_input($_POST["name"]); } if (empty($_POST["email"])) { $emailErr = "Az email megadása kötelező!"; $valid = false; } else { $email = test_input($_POST["email"]); } if (empty($_POST["dp1034"])) { $dp1034Err = "A postázási cím megadása kötelező!"; $valid = false; } else { $dp1034 = test_input($_POST["dp1034"]); } if (empty($_POST["dp1035"])) { $dp1035Err = "A telefonszám megadása kötelező!"; $valid = false; } else { $dp1035 = test_input($_POST["dp1035"]); } if (empty($_POST["dp1036"])) {$dp1036Err = "A fizetési mód nincs kijelölve!"; $valid = false;} else {$dp1036 = test_input($_POST["dp1036"]);} if (empty($_POST["dp1038"])) {$dp1038Err = "A szállítási mód nincs kijelölve!"; $valid = false;} else {$dp1038 = test_input($_POST["dp1038"]);} if ($dp1038=="5790 Ft" || "5990 Ft") {if (($_POST['dp1039'])=="Katt ide, és válaszd ki a PickPack Pontot!") {$dp1039Err = "Válassz egy PickPackPontot!"; $dp1039 = test_input($_POST["dp1039"]); $valid = false;} else{$dp1039 = test_input($_POST["dp1039"]);} } if($valid){ $name = $_POST['name']; $email = $_POST['email']; $dp1034 = $_POST['dp1034']; $dp1035 = $_POST['dp1035']; $dp1036 = $_POST['dp1036']; $dp1038 = $_POST['dp1038']; $dp1039 = $_POST['dp1039']; $dp1074 = $_POST['dp1074']; header('Location: feldolhoz.php&name='.$name.'&email='.$email.'&dp1035='.$dp1035.'&dp1034='.$dp1034.'&dp1074='.$dp1074.'&dp1036='.$dp1036.'&dp1038='.$dp1038.'&dp1039='.$dp1039); exit(); } } function test_input($data) { $data = trim($data); $data = stripslashes($data); $data = htmlspecialchars($data); return $data; } ?> <div> <form action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']);?>" method="post"> <input type="hidden" name="account" value="311"> <input type="hidden" name="charset" value="utf-8"> <div id="megrendelolap"> <div id="postazasiadatok"> <center style="margin:10px 0 10px 0">POSTÁZÁSI ADATOK</center> <div id="bal">Név:</div> <div id="jobb"><input type="text" name="name" size="25" maxlength="140" value="PRÓBA" /><span class="error">* <?php echo $nameErr; ?></span></div> <div id="bal">Email:</div> <div id="jobb"><input type="text" name="email" size="25" maxlength="40" value="EMAIL" /><span class="error">* <?php echo $emailErr; ?></span></div> <div id="bal">Telefon:</div> <div id="jobb"><input type="text" name="dp1035" value="0123456789" size="25" maxlength="40" /><span class="error">* <?php echo $dp1035Err; ?></span></div> <div id="bal">Postázási cím:</div> <div id="jobb"><input type="text" name="dp1034" value="PRÓBA" size="25" maxlength="40" /><span class="error">* <?php echo $dp1034Err; ?></span></div> <div id="bal">Számlázási cím:<br><span style="font-size:11px;">Számla esetén számlázási cím (nem kötelező)<br>Jelöld be, ha a számlázási cím megegyezik a postázási címmel!</span></div> <div id="jobb"><input type="text" name="dp1074" value="<?php echo $dp1074; ?>" size="25" maxlength="40" /><br><input type="checkbox" name="masol" onclick="masolo(this.form)"></div> </div> <div id="fizetesiadatok"> <center style="margin:10px 0 10px 0">FIZETÉSI ADATOK<br><span class="error">* <?php echo $dp1036Err; ?></span><br><span style="font-size:11px;">(A szállítási mód(ok) a fizetési mód kiválasztása után jelenik meg!)</span> <br>Milyen módon szeretnél fizetni?</center> <div id="adatok"> <input type="radio" name="dp1036" size="25" maxlength="40" <?php if (isset($dp1036) && $dp1036=="átutalás") echo "checked";?> value="átutalás"> Átutalás<br> <input type="radio" name="dp1036" size="25" maxlength="40" <?php if (isset($dp1036) && $dp1036=="Paypal") echo "checked";?> value="Paypal"> Paypal<br> <input type="radio" name="dp1036" size="25" maxlength="40" <?php if (isset($dp1036) && $dp1036=="rózsaszín csekk") echo "checked";?> value="rózsaszín csekk"> Postai rózsaszín csekk (Postán kell kérni)<br> <input type="radio" name="dp1036" size="25" maxlength="40" <?php if (isset($dp1036) && $dp1036=="utánvét") echo "checked";?> value="utánvét"> Fizetés a termék átvételekor (Utánvét)<br><br> </div> </div> <div id="szallitasimod"> <center style="margin:10px 0 10px 0">SZÁLLÍTÁSI MÓDOK<br><span class="error">* <?php echo $dp1038Err; ?></span><br>Hogyan szeretnéd megkapni a terméket?</center> <div id="adatok"> <div id="sz1"> <input type="radio" id="sz1" name="dp1038" size="25" maxlength="40" <?php if (isset($dp1038) && $dp1038=="4990 Ft") echo "checked";?> value="4990 Ft">Belföldi postai szállítás<span style="font-size:11px;">(csak a termék árát kell kifizetni - csak átutalás, rózsaszín csekk vagy Paypal befizetés esetén)</span><br> <input type="radio" id="sz1" name="dp1038" size="25" maxlength="40" <?php if (isset($dp1038) && $dp1038=="5890 Ft") echo "checked";?> value="5890 Ft">DPD futárszolgálat <span style="font-size:11px;"> (A termék ára +900 Ft)</span><br> <input type="radio" id="sz1" name="dp1038" size="25" maxlength="40" <?php if (isset($dp1038) && $dp1038=="6690 Ft") echo "checked";?> value="6690 Ft">Külföldi szállítást kérek <span style="font-size:11px;">(A termék ára +1700 Ft)</span><br> <input type="radio" id="sz1" name="dp1038" size="25" maxlength="40" <?php if (isset($dp1038) && $dp1038=="5790 Ft") echo "checked";?> value="5790 Ft">Pick Pack Pont előre fizetéssel <span style="font-size:11px;"> (A termék ára +800 Ft)</span><br> </div> <div id="sz2"> <input type="radio" id="sz2" name="dp1038" size="25" maxlength="40" <?php if (isset($dp1038) && $dp1038=="6390 Ft") echo "checked";?> value="6390 Ft">Házhoz szállítás DPD futárszolgálattal, utánvétes fizetéssel <span style="font-size:11px;">(A termék ára +1400 Ft)</span><br> <input type="radio" id="sz2" name="dp1038" size="25" maxlength="40" <?php if (isset($dp1038) && $dp1038=="5990 Ft") echo "checked";?> value="5990 Ft">Pick Pack Pont helyszíni fizetéssel <span style="font-size:11px;">(A termék ára +1000 Ft)</span> </div> <p>Ha a szállítást PickPackPontra kérted, itt válaszd ki, hova küldhetjük a csomagodat:<br><span class="error">* <?php echo $dp1039Err; ?></span></p> <select> <option>Válassz</option> <option>Budapest</option> <option>Debrecen</option> <option>Miskolc</option> </select> </div> </div> <div class="gomb"> <input type="submit" value="MEGRENDELEM"> </div> </div> </body> </html>
Mutasd a teljes hozzászólást!
Ez csak kattintásra fut le. Ha újratöltés után is leakarod futtatni akkor vagy each() vagy filter() -rel fús végig rajta.
És egy tanács.

Ez helyett

$('input[name="dp1036"]').click(function(){


inább ez

$('input[name="dp1036"]').on('click',function(){
Mutasd a teljes hozzászólást!

  • Ezt az each és filter dolgot kifejtenéd? És köszi a tanácsot!
    Mutasd a teljes hozzászólást!
  • neked elég a filter is ez azt csinálja hogy mikor meghivod az megadott elemeken lefut és végrehajtja a megadott müveletet.

    PL:

    $(':input').filter(function(){ var inval = $(this).val(); if(inval === '4990 FT') $(this).prop({ disabled:true, checked: false}); if(inval === '5890 FT') $(this).prop({ disabled:true, checked: false}); ....... });


    ez egy példa nem tudom pontosan hogy akarod használni.
    A lényeg hogy a filter ebben az esetben végig fut az összes input elemen és egyesével megvizsgálhatod és át állíthatod amit szeretnél, ezért nem kell külön input value értéket megadni hanem használhatod a $(this).val() és változóba is teheted, majd ezzel viszgálhatod hogy mi az értéke és az alapján döntöd el hogy mit kell csinálnod.
    az each() az betud járni egy tömböt és az alapján végez műveletet. vagy használhatod ugyan úgy mint a filtert.

    each()

    filter()
    Mutasd a teljes hozzászólást!
  • Beleraktam, de miután az összes inputon végigmegy nem történik semmi, ugyan úgy aktívak maradnak azok a radio gombok amiket passzívvá teszek, az éppen aktuális vizsgálatkor rendben van,de miután az egyiket megvizsgálta, megy tovább a következőre és aszerint jönnek a beállítások.
    Mutasd a teljes hozzászólást!
Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd