Hirlevél feliratkozó űrlap nem csinál semmit

Hirlevél feliratkozó űrlap nem csinál semmit
2014-06-25T18:32:57+02:00
2014-06-26T20:05:19+02:00
2022-10-15T23:26:24+02:00
ferrari458
Sziasztok

Mi nem jó az alábbi kódokkal? Az ellenőrzéseknél kiadja a hibát, de ha jól is töltöm ki, akkor semmit nem csinál, csak egyszer csak kiürülnek az űrlap mezők és ennyi. Köszönöm

<div class="modal fade" id="newsletter_modal"> <div class="modal-dialog"> <div class="modal-content"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button> <h4 class="modal-title">Hírlevél - Jelenleg fejlesztés alatt, zárja be ezt az ablakot!</h4> </div> <div class="modal-body"> <p>Iratkozzon fel hírlevelünkre hogy tájékoztathassuk az újabb kedvezményes szolgáltatásokról!</p> <form id="newsletter_form" name="newsletter_form" method="post" action=""> <div class="newsletter_input_div"> <span class="newsletter_input_div_title">Az Ön neve</span> <input type="text" name="nws_name" id="nws_name" class="form-control"> </div> <div class="newsletter_input_div"> <span class="newsletter_input_div_title">E-mail címe</span> <input type="text" name="nws_email" id="nws_email" class="form-control"> </div> <div class="newsletter_input_div"> <span class="newsletter_input_div_title">Melyik kerület érdekli?</span> <select id="nws_kerulet" name="nws_kerulet" multiple="multiple"> <?php $ertekek=array( "I"=>"I. kerület", "II"=>"II. kerület", "III"=>"III. kerület", "IV"=>"IV. kerület", "V"=>"V. kerület", "VI"=>"VI. kerület", "VII"=>"VII. kerület", "VIII"=>"VIII. kerület", "IX"=>"IX. kerület", "X"=>"X. kerület", "XI"=>"XI. kerület", "XII"=>"XII. kerület", "XIII"=>"XIII. kerület", "XIV"=>"XIV. kerület", "XV"=>"XV. kerület", "XVI"=>"XVI. kerület", "XVII"=>"XVII. kerület", "XVIII"=>"XVIII. kerület", "XIX"=>"XIX. kerület", "XX"=>"XX. kerület", "XXI"=>"XXI. kerület", "XXII"=>"XXII. kerület", "XXIII"=>"XXIII. kerület" ); foreach($ertekek AS $kulcs=>$ertek ) { echo '<option value="'.$kulcs.'">'.$ertek.'</option>'; } ?> </select> </div> <div id="nws_ajax_message"></div> </form> </div> <div class="modal-footer"> <button type="submit" id="add_nws" class="btn btn-primary btn-large add_newsletter_button">Feliratkozás</button> <button data-dismiss="modal" type="reset" class="btn">Nem, köszönöm</button> </div> </div><!-- /.modal-content --> </div><!-- /.modal-dialog --> </div><!-- /.modal --> <!-- Modal end -->
$(document).ready(function(e) { disableEnter(); $('#nws_ajax_message').hide(); $('#add_nws').click(function(e) { e.preventDefault(); var hiba = ""; var nws_name = $('#nws_name').val(); var nws_email = $('#nws_email').val(); var nws_kerulet = $('#nws_kerulet').val(); var nws_ajax_message = $('#nws_ajax_message'); if(nws_name == "" ) { hiba = "<span>Nem adta meg a nevét.</span>"; } if(nws_email == "" ) { hiba += "<span>Nem adta meg az e-mail címét.</span>"; } if(nws_email != "" ) { if(!validateEmail(nws_email)) { hiba += "<span>Hibásan adta meg az e-mail címét.</span>"; } } if(hiba != "" ) { $('#nws_ajax_message').show(); nws_ajax_message.html(hiba); } else { $.ajax ({ type: 'POST', cache: false, url: 'files/add_nws.php', data: { nev:nws_name, email:nws_email, ker:nws_kerulet }, success: function(data) { var result = $.trim(data); setTimeout(function() { nws_ajax_message.html(data); $('#newsletter_form')[0].reset(); }, 3000 ); } }); return false; } }); });
<?php require_once("connect.php"); require_once("email_check.php"); $n = mysqli_real_escape_string($kapcs, $_POST['nws_name']); $e = mysqli_real_escape_string($kapcs, $_POST['nws_email']); $k = mysqli_real_escape_string($kapcs, $_POST['nws_kerulet']); if($n == "") { echo "Nem adta meg a nevét."; exit(); } if($e == "") { echo "Nem adta meg az e-mail címét."; exit(); } else { if(is_mail($e) != false ) { $check = mysqli_query($kapcs, "SELECT hirlevel_email FROM hirlevel WHERE hirlevel_email='$e' LIMIT 1"); if(mysqli_num_rows($check) > 0 ) { echo "Ez az e-mail cím már szerepel az adatbázisban."; exit(); } else { $add = mysqli_query($kapcs, "INSERT INTO hirlevel(hirlevel_nev, hirlevel_email, hirlevel_kerulet) VALUES('".$n."', '".$e."', '".$k."')") or die(mysqli_error($kapcs)); if($add) { echo 'Sikeresen feliratkozott a hírlevélre.'; } else { echo "Nem sikerült a feliratkozás, kérem próbálja újra."; exit(); } } } else { echo "Hibás e-mail címet adott meg."; exit(); } } ?>
Mutasd a teljes hozzászólást!
Ez nekem elég gyanús:
Notice: Undefined index: nws_name in /home/hovamenj/public_html/files/add_nws.php on line 6 Notice: Undefined index: nws_email in /home/hovamenj/public_html/files/add_nws.php on line 7 Notice: Undefined index: nws_kerulet in /home/hovamenj/public_html/files/add_nws.php on line 8

A kódodban ez van:

data: { nev:nws_name, email:nws_email, ker:nws_kerulet }

Akkor nem az ott megadott neveket kellene használnod?
--
Próbáltad amiket írtam? Bár ez után nem nagyon kell
Mutasd a teljes hozzászólást!

  • A név és e-mail validálást már megteszed az ajax küldéskor:

    $dbName = "adatbázisod"; $kapcs = mysql_connect($dbHost, $dbUser, $dbPass) or die("dberror"); if($kapcs) { mysql_select_db($dbName,$dbConn) or die("dberror") ; $sql = "SELECT email FROM hirlevel WHERE email='$e'"; $result = mysql_query($sql) or die ("dberror"); if(mysql_num_rows($result)>0){ echo "0"; } else { $sql = "INSERT into hirlevel (hirlevel_nev, hirlevel_email), hirlevel_kerulet VALUES ('$&', '$e', '$k')"; $result = mysql_query($sql) or die ("dberror"); if(mysql_num_rows($result)>0){ echo "sikeresen feliratkozott"; }else{ echo "Hiba: nem sikerült a feliratkozás!"; } } mysql_close($kapcs); }else{ echo "dberror"; }
    Mutasd a teljes hozzászólást!
  • A

    60.sor: <button type="submit" id="add_nws" class="btn btn-primary btn-large add_newsletter_button">Feliratkozás</button> 61.sor: <button data-dismiss="modal" type="reset" class="btn">Nem, köszönöm</button>
    tedd az </form > elé, a formon belülre.

    Nem árt ha a

    68.sor: $(document).ready(function(e) {

    script-et beteszed <script></ script> tag-ek közé. Rögtön működni is fog!

    Mutasd a teljes hozzászólást!
  • Tehát szerver oldalon akkor már ne is ellenőrizzek? Ezt komolyan gondoltad?

    Zslukacsik:

    Átraktam a form-on belülre a gombokat, és minden <script> tag-ek között van aminek kell lennie. De továbbra sem működik, nem csinál semmit. Az ellenőrzések működnek.
    Mutasd a teljes hozzászólást!
  • Ezt komolyan gondoltad?

    Reméljük, hogy nem gondolta komolyan
    --
    A php fájlod mit kap meg?

    Csinálj az elejére egy fopen (vagy más) fájlbaírást, ahol a kapott adatokat kiírod és nézd meg, tényleg megkapta-e?

    Hibakeresés 1. lépés
    Ha igen, akkor a php oldalon keresheted a hibát, ha nem, akkor a küldő űrlap oldalán.

    2. lépés
    Ha a php feldolgozóban van a hiba, akkor nézd meg, ha simán url-ként meghívva és GET-el (programba átmenetileg átírva) átvéve mit ír ki. Van-e hiba.

    3. lépés
    Ha nincs, akkor írasd ki, mikor melyik sqlhez ér oda (és az mit csinálna)
    Mutasd a teljes hozzászólást!
  • Hogyhogy nem csinál semmit? Submitálja az oldalt.

    <form id="newsletter_form" name="newsletter_form" method="post" action="">

    Mivel az action értéke üres saját magát tölti be újra.

    A mezőneveket még el kellene postolnod mikor újra betölti magát az oldal.

    $nws_name=$_POST['nws_name'];
    stb...

    Még jobb így talán:

    if ($_SERVER['REQUEST_METHOD'] == 'POST') {
        $nws_name=$_POST['nws_name'];
        $nws_mail=$_POST['nws_mail'];
         stb...

    }


    Ha submit után vissza akarod írni a mezőkbe az értékeket akkor állíts be value-t is!

    <input type="text" name="nws_name" id="nws_name" value="<?=$nws_name?>" class="form-control">

    megj.: Kicsit pontosabban kellene megfogalmaznod a hibát és azt hogy mit szeretnéd hogy "csináljon"! Mert a nem csinál semmit kb olyan mint mikor valaki azt mondja: Nem megy az internet. (Hát hova menjen?)
    Mutasd a teljes hozzászólást!
  • Jóreggelt

    Adok egy próba linket, ott megnéznétek ha megkérlek titeket?
    A hírleveles box egyből kijön oldalbetöltéskor. (Fikázást nem kérek az oldalra, se egyebet, bár micunak nem szokása, gondolom többieknek se a hozzászólók között)
    Link
    Mutasd a teljes hozzászólást!
  • Ez nekem elég gyanús:
    Notice: Undefined index: nws_name in /home/hovamenj/public_html/files/add_nws.php on line 6 Notice: Undefined index: nws_email in /home/hovamenj/public_html/files/add_nws.php on line 7 Notice: Undefined index: nws_kerulet in /home/hovamenj/public_html/files/add_nws.php on line 8

    A kódodban ez van:

    data: { nev:nws_name, email:nws_email, ker:nws_kerulet }

    Akkor nem az ott megadott neveket kellene használnod?
    --
    Próbáltad amiket írtam? Bár ez után nem nagyon kell
    Mutasd a teljes hozzászólást!
  • Jaaa tényleg, nev, email és ker

    Remélem csak ennyi baja van.
    Mutasd a teljes hozzászólást!
  • Mostmár elmenti őket a táblába, az volt a gond amit írtál. Viszont a kerületet nem menti el, valószinü nem kapja meg az értékeket a selectből.

    Ez egy bootstrap féle multiple select, az alábbi kódot néztem hozzá, hogy azzal meg lehet kapni a kiválasztott értékeket. Csak ugye nem kap értéket így most.

    $('#nws_kerulet').multipleSelect ({ selectAllValue: 'multiselect-all', enableCaseInsensitiveFiltering: true, enableFiltering: true, maxHeight: '300', buttonWidth: '235', onChange: function(element, checked) { var brands = $('#nws_kerulet option:selected'); var selected = []; $(brands).each(function(index, brand){ selected.push([$(this).val()]); }); console.log(selected); } });

    Ajax-nál: var nws_kerulet = $('#nws_kerulet').val();
    Mutasd a teljes hozzászólást!
  • Hibakeresés (bár elsőre se fogadtad meg)
    1.
    printr($_POST);
    utasítással írasd ki, hogy mi ment át.

    Ha egy tömb lett a kerület, akkor azt valahogy (ciklus vagy összefűzés, vagy ...) fel kell dolgozni, hogy minden eleme bekerüljön a táblába.

    (Ha nem kerül át, akkor rossz a paraméter átadásod, az űrlapos fájlban. Akkor azt kel ellenőrizned)

    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