Avatar billede sbay Nybegynder
17. september 2008 - 14:01 Der er 21 kommentarer og
1 løsning

udføre noget php når man forlader et felt

Hejsa

Jeg har et almindeligt <input> field. Når man hopper videre vil jeg gerne have udført en lille stump php-kode. Hvordan gør man det?
Avatar billede smogle Nybegynder
17. september 2008 - 14:11 #1
test.php
<?
if(isset($_POST["inputfelt"])) {
    //Hvad skal der ske
}
?>
<html>
<body>
<form method="post" action="test.php">
  <input type="text" name="inputfelt">
  <input type="submit" value="send">
</form>
</body>
</html>

Dette skulle gøre det ;-)
Avatar billede sbay Nybegynder
17. september 2008 - 14:36 #2
jo, men er det ikke kun hvis man gør videre til en ny side? Jeg vil gerne havde det når man "tabber" videre til det næste felt!
Avatar billede jakobdo Ekspert
17. september 2008 - 14:38 #3
Det skal laves i javascript.
Og skal du have udført noget php, skal det kaldes med f.eks. ajax. :o)
Avatar billede sbay Nybegynder
17. september 2008 - 14:44 #4
Jeg laver et ajax kald i feltet:

onkeyup="ajax_showOptions(this,'getDesignByLetter',event)"

Den værdi brugeren så har valgt ud fra ajax-listen, vil jeg gerne efterbehandle, lige så snart brugeren går videre til næste felt.
Avatar billede jakobdo Ekspert
17. september 2008 - 14:50 #5
Så skal det ikke være onkeyup
Så skal det være: onblur
Avatar billede sbay Nybegynder
17. september 2008 - 15:00 #6
Så jeg kan blot tilføje en onblur, som kalder et ajaxkald:

onblur="ajax_showOptions(this,'UpdateDesignStatus',event)"
Avatar billede sbay Nybegynder
17. september 2008 - 15:07 #7
men hvordan p..... får jeg designnummeret med over i mit ajax-kald?
Avatar billede jakobdo Ekspert
17. september 2008 - 15:10 #8
kan du ikke tilgå this ?
Det er jo formen, så skal du have fat i feltets id og der bør du kunne tilgå value.
Avatar billede sbay Nybegynder
17. september 2008 - 15:51 #9
Det skalle man synes. Her koden til det kald der laves først, og så det kald jeg gerne vil lave når feltet forlades - men det virker ikke umiddelbart:

onkeyup="ajax_showOptions(this,'getDesignByLetter',event)" onblur="ajax_showOptions(this,'UpdateDesignStatus',event)"




if(isset($_GET['getDesignByLetter']) && isset($_GET['letters'])){
    $letters = $_GET['letters'];
    $letters = preg_replace("/[^a-z0-9 ]/si","",$letters);
    $letters = strtoupper($letters);
    if ($letters == "S") {$END = "-000";}
    else {$END = "-AAA";}
    //$letters = "K";
   
    $sql = "SELECT DESIGNNO,STATUS FROM EDEMP.DESIGN3 where DESIGNNO LIKE '".$letters."%' AND STATUS = '1'";
               
    $conn = odbc_connect("ASDK101","","");
    $res = odbc_exec($conn,$sql);
    while($inf = odbc_fetch_array($res)){
       
        echo $inf["STATUS"] ."###". trim($inf["DESIGNNO"]).$END."|";
    }   
}


if(isset($_GET['UpdateDesignStatus']) && isset($_GET['letters'])){
    $letters = $_GET['letters'];
    $letters = preg_replace("/[^a-z0-9 ]/si","",$letters);
    $letters = strtoupper($letters);
        //$letters = "K";
   
    $sql = "UPDATE EDEMP.DESIGN3 SET STATUS = '2' WHERE DESIGNNO ='".substr(strtoupper($letters),0,5)."'";
               
    $conn = odbc_connect("ASDK101","","");
    odbc_exec($conn,$sql);
}
Avatar billede jakobdo Ekspert
17. september 2008 - 16:00 #10
Det har som sådan intet med php at gøre.
Det er ren javascript.
Så det kode du viser her, kan ikke bruges.
Avatar billede sbay Nybegynder
17. september 2008 - 17:01 #11
njaaa - al koden er nu skrevet i php... jeg har blot ikke kopiert <?php ?> med
Avatar billede jakobdo Ekspert
17. september 2008 - 17:27 #12
I know...
Men det du skal bruge, er javascript....
Avatar billede sbay Nybegynder
18. september 2008 - 11:34 #13
kan du præcisere? Jeg er selv ved at løbe tør for ideer :-(
Avatar billede jakobdo Ekspert
18. september 2008 - 12:05 #14
Du skal have fat i feltets værdi.
Det gør du med javascript.

F.eks.:

<input type="text" id="test" onblur="alert(this.value);" name="test" />
Avatar billede sbay Nybegynder
19. september 2008 - 14:20 #15
Meget mystisk. Hvis jeg laver et nyt felt med din kode - så fungerer det. Hvis jeg derimod indsætter det i mit eksisterende felt, så vil den ikke!

<input class="required" name="IPROD" type="text"  onblur="alert(this.value);" id="IPROD" onkeyup="ajax_showOptions(this,'getDesignByLetter',event)"  tabindex="1" value="" size="10" autocomplete="off" >&nbsp;&nbsp;
Avatar billede sbay Nybegynder
19. september 2008 - 14:58 #16
Hvis jeg omdøber felterne virker det... nå men når jeg så har værdien, hvordan får jeg så skudt min sql query afsted?
Avatar billede jakobdo Ekspert
21. september 2008 - 18:08 #17
Det gør du jo så bagved med dit ajax kald, til et php script.
Har du overhovedet ingen ide om hvad det er du roder med og hvordan man koder ?
Avatar billede sbay Nybegynder
21. september 2008 - 20:04 #18
Joo, php og html kender jeg da til, men er ikke professionel :-) Ajax scrpits er nogle jeg har fundet på dhtmlgoodies.com! Har dog erhvervet mig et hæfte om AJAX, tror jeg er nødt til selv at lære lidt af det!
Avatar billede jakobdo Ekspert
21. september 2008 - 20:36 #19
Det vil da nok være en ide, nu du roder med det! :o)
Avatar billede sbay Nybegynder
16. december 2008 - 14:34 #20
kom med et svar!
Avatar billede jakobdo Ekspert
16. december 2008 - 15:22 #21
Svar!
Avatar billede jakobdo Ekspert
18. december 2008 - 08:21 #22
Takker for point.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester