Just nu i M3-nätverket
Gå till innehåll
happyfejs

Kontrollera om epost redan finns i databas

Rekommendera Poster

Förresten, pröva att använda GET som metod istället.

 

Alltså:

type: "GET",

istället för

type: "POST",

 

(på php-sidan får du också ändra så att den använder $_GET istället)

Redigerad av Anjuna Moon

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
alltså den returnerar ju rätt värde i firebug nu, men knappen inaktiveras inte

Jag testade själv nu och fick det inte att fungera med POST (har inte klurat ut varför än), men med GET gick det bra.

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

status kan vara ett reserverat ord eller annat konstigt.

 

testa med detta:

success: function (msg) {
    if (msg== "1") jQuery("#submit").attr('disabled', 'disabled');
alert(msg);
}

 

Är du säker att det inte skrivs ut några mellanslag före/efter siffran?!

Redigerad av Jonas__B

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

Har inte kollat igenom koden här alls men tänkte påminna om att eforums-kodfunktion ibland ändrar om skiftläge (versaler/gemener) på vissa (i vbscript reserverade ord) vilket tyvärr kan ställa till det.

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

Hittar ni nått sånt ord guys? Har inte en aning om vilka som ska vara gemener eller versaler :S

 

Tack som fan för att ni orkar hjälpa föresten :) mycket uppskattat

Redigerad av mrsebastian

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

Det är dags att du lär dig felhantering.

 

missing ) after argument list
[break on this error] });\n

addMember.inc.php (rad 19)

 

Ett "}" för mycket efter successmetoden

Redigerad av Jonas__B

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

På vilket sätt då menar du? Har aldrig kikat på felkoder mer än de jag får direkt när det är fel i phpkoden. Vart hittade du den felkoden och vad menas med den? :S

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

jag kontrollerade antalet tecken som skickas med svaren (som egentligen skall vara "0" eller "1") och fick 5 tecken.

 

Ta bort alla blankrader och mellanslag i php-sidan före, efter och i php-koden.

 

Felkoden fick jag i Firebug

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

Nu kommer det ju upp ett meddelande med returvärdet :D, yay. Men knappen inaktiveras fortfarande inte :S

 

Missade en "}" när jag klistrade in din kod, sorry..

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

Okay, nu har jag tagit bort alla blankrader, hur kontrollerar man tecken? Finns det nån bra sida/bok man kan lära sig mer om felkoder/felsökning i? Har som sagt aldrig tidigare använt firebug och vet egentligen inte vad jag gör när jag klickar runt där, hehe

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

Nu vet jag inte vad du gjort - allt verkar returnera "1" nu.

 

Dock har jag sett att borttagning av fnuttar i success-metoden fungerar.

if (msg== 1) 

 

Felhantering är mera ett arbetssätt i utvecklingen för att undersöka var man får fel

 

 

T ex:

jQuery(document).ready(function () {
     alert("jquery har laddats");
       jQuery('#email').blur(function () {
               alert("#email blur har triggats");

               var email = jQuery(this).val();
               alert("email value: " +email);                
               jQuery.ajax({
                       type: "GET",
                       url: "checkMail.php",
                       async: true,
                       data: "email=" + email,
                       success: function (msg) {
               alert("ajax success! response value: " +msg);        
    if (msg== 1) jQuery("#submit").attr('disabled', 'disabled');
                       }
               });
       });
});

 

När allt fungerar skall man ta bort alla alert.

Vid förändring borde man återinsätta alla alerts igen.

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

Skumt, jag får bara 1 när jag skriver in en mail som finns, annars får jag 0 :S

Ska jag ta bort fnuttarna i success eller ska de ligga kvar?

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

Nu har jag lagt in den php koden som du skrev i början för att att den skulle kolla så man hade skickat med mail osv

 

<?php
	if(!isset($_GET["email"])) die("1");
	include '../includes/db_settings.inc.php';
	$conn = mysql_connect($sql_host, $sql_user, $sql_pass) or die ("1");
	$database = mysql_select_db($sql_db,$conn);
	$email = $_GET["email"];
	$query  = "SELECT email FROM members WHERE email = '" . $_GET["email"] . "'";
 		$result = mysql_query($query) or die("1");
 		echo ($result) ? "1" : "0";
	include '../includes/closedb.php';
?> 

 

Testa den på den här sidan http://www.gallstad.nu/pages/checkMail.php?email=sebastian@happyfejs.se. Funkar dock inte så bra, returnerar alltid 1

Redigerad av mrsebastian

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

testade att ändra

if(!isset($_GET["email"])) die("1");

till die 0 och inte skicka med en mail, men det blev ändå 1.

och så testade jag att ändra

echo ($result) ? "1" : "0";

till 0,1 istället för 1,0 och då skrev den ut 0 :S

 

testade även att ändra de andra ställen där det stog 1 till 0 men skrev fortfarande ut 1

 

fattar ingenting

Redigerad av mrsebastian

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

Lugna dig lite nu.

PHP-koden du hade innan fungerade uppenbarligen så du får gå tillbaka till den versionen.

 

Men den php-koden skall ajaxen fungera. if-satsen jag skickade senast skall gälla, med den fungerade det för mig.

Redigerad av Jonas__B

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

Sweet bananas, nu funkar det :D, sista prylen kvar då, att skriva en text vid mailrutan att den redan existerar. Hur gör jag det? Samt att knappen ska aktiveras igen om den retunerar 0 efter den returnerat 1.

 

Tack som fan för hjälpen :D

Redigerad av mrsebastian

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

1. Skapa rutan i html-koden med ett id (valfritt). (styla om, och hur du vill)

2. I js - innan du lägger till blur-eventet på #email, göm meddelanderutan med jquery:

jQuery("#felmeddelandet").hide();

 

efter successmetoden ändra if-satsen till

if (msg==1)
{
jQuery("#submit").attr('disabled','disabled');
jQuery("#felmeddelandet").html("Epostadressen finns redan").show();
}
else{
jQuery("#submit").attr('disabled','');
jQuery("#felmeddelandet").html("").hide();
}

Redigerad av Jonas__B

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

fint. Ha som vana att klicka i lite poäng som tack (gröna plus-ikonen).

 

Köp en php- och en javascriptbok. Det kan behövas i framtida produktioner för ökad inlärning och förståelse.

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

Lite generella tips:

1. Jag hade gjort en div eller span för felmeddelandetexten, inte en textarea.

2. Label runtom behövs inte.

3. Om du vill - ändra om till POST igen.

Eller du kan testa det iaf, då vi antagligen löst det ursprungliga felet.

Redigerad av Jonas__B

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Skapa ett nytt konto på vårt forum. Det är lätt!

Registrera ett nytt konto

Logga in

Redan medlem? Logga in här.

Logga in nu



×
×
  • Skapa nytt...