Avatar billede riversen Nybegynder
19. september 2003 - 16:22 Der er 12 kommentarer og
1 løsning

brug af variabel i funktion

Jeg har noget kode, der opretter en variabel efter man har postet noget data fra en form. Variablen indeholder fejl beskeder, hvis nogle felter ikke er korrekt udfyldt. Variablen udskrives længere nede på siden uden problemer.

Men når jeg vil benytte variablen i en funktion, som kaldes kan den ikke aflæses...hvorfor nu det? og kan det ikke gøres uden jeg skal lave noget session e.l.
Avatar billede sukos Juniormester
19. september 2003 - 16:26 #1
function test() {
global $variabel;
din funktion
}
Avatar billede riversen Nybegynder
19. september 2003 - 16:27 #2
men variablen er erklæret udenfor funktionen...er jeg nødt til at sende den med i kaldet så ?
Avatar billede riversen Nybegynder
19. september 2003 - 16:28 #3
<?php
    if( isset( $_POST["send"] ) )
    {
        if( !isset( $_POST["spm1"] ) )
            $errors .= "Du har ikke valgt et svar i spørgsmål 1.<br />";
        if( !isset( $_POST["spm2"] ) )
            $errors .= "Du har ikke valgt et svar i spørgsmål 2.<br />";
        if( !isset( $_POST["spm3"] ) )
            $errors .= "Du har ikke valgt et svar i spørgsmål 3.<br />";
        if( !isset( $_POST["spm4"] ) )
            $errors .= "Du har ikke valgt et svar i spørgsmål 4.<br />";
        if( !isset( $_POST["spm5"] ) )
            $errors .= "Du har ikke valgt et svar i spørgsmål 5.<br />";
        if( !isset( $_POST["spm6"] ) )
            $errors .= "Du har ikke valgt et svar i spørgsmål 6.<br />";
        if( !isset( $_POST["billeder"] ) )
            $errors .= "Du har ikke valgt, om vi må benytte billeder af Deres messestand.<br />";

        if( $_POST["spm4"] == "ja" && trim( $_POST["spm4_tekst"] ) == ""  )
            $errors .= "Du har ikke givet en begrundelse i spørgsmål 4.<br />";
        if( $_POST["spm5"] == "nej" && trim( $_POST["spm5_tekst"] ) == "" )
            $errors .= "Du har ikke givet en begrundelse i spørgsmål 5.<br />";
        if( $_POST["spm6"] == "nej" && trim( $_POST["spm6_tekst"] ) == "" )
            $errors .= "Du har ikke givet en begrundelse i spørgsmål 6.<br />";
    }
   
    function check( $spmNo, $value )
    {
        if( $errors != "" ) // her fejler den...
        {
            switch( $spmNo )
            {
                case $spmNo == "spm1": if( $_POST["spm1"] == $value ) return "CHECKED";
                case $spmNo == "spm2": if( $_POST["spm2"] == $value ) return "CHECKED";
                case $spmNo == "spm3": if( $_POST["spm3"] == $value ) return "CHECKED";
                case $spmNo == "spm4": if( $_POST["spm4"] == $value ) return "CHECKED";
                case $spmNo == "spm5": if( $_POST["spm5"] == $value ) return "CHECKED";
                case $spmNo == "spm6": if( $_POST["spm6"] == $value ) return "CHECKED";
                case $spmNo == "billeder": if( $_POST["billeder"] == $value ) return "CHECKED";
            }
        }
    }
?>
Avatar billede fangel Nybegynder
19. september 2003 - 16:29 #4
som sukos skriver, skal variabel bare gøres global... eller slf sendes som parameter

Morten
Avatar billede riversen Nybegynder
19. september 2003 - 16:30 #5
jeg har prøvet at skrive global foran, det hjælper ikke
Avatar billede riversen Nybegynder
19. september 2003 - 16:30 #6
har prøvet med parameter og det virker, men vil gerne have det til at virke uden...
Avatar billede sukos Juniormester
19. september 2003 - 16:31 #7
function check( $spmNo, $value )
    {
global $errors;
Avatar billede riversen Nybegynder
19. september 2003 - 16:33 #8
hmmm...det virker noget ulogisk for mig...hvorfor kan jeg ikke gøre den global øverst fx. ?

husk at svare
Avatar billede sukos Juniormester
19. september 2003 - 18:04 #9
har du fået det til at virke?
Avatar billede riversen Nybegynder
20. september 2003 - 00:05 #10
ja
Avatar billede riversen Nybegynder
20. september 2003 - 00:05 #11
men jeg forstår ikke lige hvorfor det virker
Avatar billede sukos Juniormester
20. september 2003 - 00:23 #12
hmm, hvad skal man sige,

Du laver en sovs! (php-scripts med vars og output)
Sovsen, har ikke den farve du gerne vil bruge, selvom du har nogle vars som er i den rigtige retning (farven[], array'et, ($errors))
Du har så muligheden for at tilsætte nogle nye vars, for at farven på sovsen  bliver helt rigtig.
Men da du vil bruge den samme farve i mange forskellige sovser :O) er det nemmeste at lave en funktion, som kan genbruges.
Men da det er en funktion som kan bruges i mange forskellige sovser, :O),  uafhængigt af hvilken sovs den skal bruges i, skal du lige huske at fortælle funktionen at der allerede er lavet en farve, (global $errors;) som funktionen skal farve videre på.

hmm........., og et svar :O)
Avatar billede riversen Nybegynder
20. september 2003 - 07:45 #13
ok...global siger der er en variabel andetsteds ved navn $errors...tænkte det som om, det var noget der svarer til erklæring af en public variabel
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