Another PHP help

Jecob Boman

Well-known member
  • Dec 10, 2013
    1,333
    93
    48
    homagama
    මචංලා මට මෙන්න මේ අවුල ලිහා ගන්න හැටි කියල දෙන්න. මෙන්න මේකයි කෝඩ් එක.

    PHP:
    <?php
    
    $level_one = 'ok';
    
    if (isset($level_one)) {
    
    	echo '<h1>Heading 1</h1>';
    
    	$level_two = 'ok';
    
    	if (isset($level_one) && isset($level_two)) {
    
    		echo '<h1>Heading 2</h1>';
    
    	}
    }
    
    ?>

    ඔය කෝඩ් එකේ මචංලා පලවෙනි if block එක ඇතුලේ තියෙන echo '<h1>Heading 1</h1>'; මේ ස්ටේට් මන්ට් එක පලවෙනි if block එක run වෙන කොට වැඩ කරන්න ඕන.

    හැබැයි පලවෙනි if block එකෙන් එකේ ඇතුලේ තියෙන nested if block එකට ආවම echo '<h1>Heading 2</h1>'; මේ ස්ටේට් මන්ට් එක වැඩ කරන්න ඕන හැබැයි මේ අවස්තාවෙදී පලවෙනි if block එකේ තිබ්බ echo '<h1>Heading 1</h1>'; මෙන්න මේ ස්ටේට් මන්ට් එක වැඩ නොකර යන්න ඕන. ඒකියන්නේ <h1>Heading 1</h1> print වෙන්නේ නැතිව යන්න ඕන.

    මචංලා මේකට මම css ,js solutions භාවිතා කරන්න කැමති නෑ PHP වලන් මේක කරගන්න හැටි කියල දෙන්න.

    තෑන්ක්ස් JB. :D
     

    tcgunarathena

    Well-known member
  • Oct 5, 2007
    2,613
    647
    113
    මාතර
    උබ කියන එක තේරෙන්නේ නැහැ අනික මේක ලුප් එකක් ඇතුලේ නෙවෙයි නේද තියෙන්නේ.. එක නිසා දෙකම එක පාර එක පාර නේද ප්‍රින්ට් වෙන්නේ. උබට ඕනේ අවුට්පුට් එක මෙතන පොස්ට් කරපන්..
     

    Jecob Boman

    Well-known member
  • Dec 10, 2013
    1,333
    93
    48
    homagama

    මචං ඔය කෝඩ් එක රන් කරාම heading 1 එකයි heading 2 එකයි දෙකම පෙන්වනවනේ. මට ඕනේ. heading 2 එක display වෙන අවස්තාවේ heading 1 එක display නොවෙන්න හදාගන්න.

    මම දන්නවා මේ සාම්පල් කෝඩ් එකේ nested if එකට auto එනව. නමුත් මගේ කෝඩ් එකේදී nested if එකට එන්නේ යූසර් බටන් එකක් ක්ලික් කරාම. :yes:
     

    joshmiller

    Well-known member
  • Feb 23, 2014
    3,305
    220
    63
    pitarata
    PHP:
    <?php 
    
    $level_one = 'ok'; 
    
    if (isset($level_one) AND !isset($level_two)) { 
    
        echo '<h1>Heading 1</h1>'; 
    }
        $level_two = 'ok'; 
    
        if (isset($level_one) && isset($level_two)) { 
    
            echo '<h1>Heading 2</h1>'; 
    
        } 
    
    
    ?>

    okada uba kiyanne
     
    Last edited:

    tcgunarathena

    Well-known member
  • Oct 5, 2007
    2,613
    647
    113
    මාතර
    නෙස්ටඩ් නැතිව ලියපන් මේ වගේ

    if (isset($level_one)) {

    echo '<h1>Heading 1</h1>';



    } else if ( isset($level_two)) {

    echo '<h1>Heading 2</h1>';

    }
     

    vdilshan

    Well-known member
  • Apr 21, 2011
    1,653
    155
    63
    Colombo, LK
    Machan Me thiyena widiyata "Heading 1 and 2" dekama echo wenna one,
    anith eka oyata wenna one de kiyala thiyenawa phadili nha,
     

    Jecob Boman

    Well-known member
  • Dec 10, 2013
    1,333
    93
    48
    homagama
    උබ කියන එක තේරෙන්නේ නැහැ අනික මේක ලුප් එකක් ඇතුලේ නෙවෙයි නේද තියෙන්නේ.. එක නිසා දෙකම එක පාර එක පාර නේද ප්‍රින්ට් වෙන්නේ. උබට ඕනේ අවුට්පුට් එක මෙතන පොස්ට් කරපන්..

    මචං ඇත්තටම ඔතන තියෙන්නේ $_GET[] වේරිබල් ටිකක් මේක බලන්නකෝ.

    PHP:
    <?php
    
    
    if (isset($_GET['one'])) {
    
    	echo '<h1>Heading 1</h1>';
    
    	if (isset($_GET['one']) && isset($_GET['two'])) {
    
    		echo '<h1>Heading 2</h1>';
    
    	}
    }
    
    ?>

    මෙන්න මේ යූආර් එල් එකෙන් තමයි ඇක්සස් කරන්නේ.

    /if_block_jump.php?one=1&two=2

    මෙහෙම හිතන්නකෝ.....
    ඉහත url එකේ අපි මෙහෙම ගහනවා. /if_block_jump.php?one=1

    එතකොට heading 1 එක පේනවා. එ්ක ගැටලුවක් නෑ.

    දැන් අපි යූර්ල් එක මෙහෙම ගහනවා. /if_block_jump.php?one=1&two=2

    එතකොට heading 1 and heading 2 දෙකම පේනවා.

    ඒත් මට ඕන මේ අවස්තාවෙදි heading 2 විතරක් පෙන්න ගන්න.
     

    Jecob Boman

    Well-known member
  • Dec 10, 2013
    1,333
    93
    48
    homagama
    PHP:
    <?php 
    
    $level_one = 'ok'; 
    
    if (isset($level_one) AND !isset($level_two)) { 
    
        echo '<h1>Heading 1</h1>'; 
    }
        $level_two = 'ok'; 
    
        if (isset($level_one) && isset($level_two)) { 
    
            echo '<h1>Heading 2</h1>'; 
    
        } 
    
    
    ?>

    okada uba kiyanne

    නෙස්ටඩ් නැතිව ලියපන් මේ වගේ

    if (isset($level_one)) {

    echo '<h1>Heading 1</h1>';



    } else if ( isset($level_two)) {

    echo '<h1>Heading 2</h1>';

    }

    Machan Me thiyena widiyata "Heading 1 and 2" dekama echo wenna one,
    anith eka oyata wenna one de kiyala thiyenawa phadili nha,

    මචංලා මම ටිකක් හොඳට විස්තර කරල පහල දාල තියෙනව රිප්ලයි එකක් ඒක බලන්. ඒකයි පරක්කු උනේ රිප්ලයි කරන්න :D:yes:
     

    tcgunarathena

    Well-known member
  • Oct 5, 2007
    2,613
    647
    113
    මාතර
    මචං ඇත්තටම ඔතන තියෙන්නේ $_GET[] වේරිබල් ටිකක් මේක බලන්නකෝ.

    PHP:
    <?php
    
    
    if (isset($_GET['one'])) {
    
    	echo '<h1>Heading 1</h1>';
    
    	if (isset($_GET['one']) && isset($_GET['two'])) {
    
    		echo '<h1>Heading 2</h1>';
    
    	}
    }
    
    ?>

    මෙන්න මේ යූආර් එල් එකෙන් තමයි ඇක්සස් කරන්නේ.

    /if_block_jump.php?one=1&two=2

    මෙහෙම හිතන්නකෝ.....
    ඉහත url එකේ අපි මෙහෙම ගහනවා. /if_block_jump.php?one=1

    එතකොට heading 1 එක පේනවා. එ්ක ගැටලුවක් නෑ.

    දැන් අපි යූර්ල් එක මෙහෙම ගහනවා. /if_block_jump.php?one=1&two=2

    එතකොට heading 1 and heading 2 දෙකම පේනවා.

    ඒත් මට ඕන මේ අවස්තාවෙදි heading 2 විතරක් පෙන්න ගන්න.


    PHP:
    <?php
    
    if (isset($_GET['one']) && isset($_GET['two'])) {
    
    		echo '<h1>Heading 2</h1>';
    
    	}
    }
    else if (isset($_GET['one'])) {
    
    	echo '<h1>Heading 1</h1>';	
    
    ?>

    මේක ට්‍රයි කරපන්.
     

    vdilshan

    Well-known member
  • Apr 21, 2011
    1,653
    155
    63
    Colombo, LK
    PHP:
    $level_one = 'ok';
    	$level_two = 'ok'; 
    
    	if (isset($level_one) AND !isset($level_two)) {
    
    	    echo '<h1>Heading 1</h1>';  
    
    	}else{
    
    		echo '<h1>Heading 2</h1>';  
    
    	}

    simply mehema liyanna oka wada, TESTED !
     

    Jecob Boman

    Well-known member
  • Dec 10, 2013
    1,333
    93
    48
    homagama
    PHP:
    <?php
    
    if (isset($_GET['one']) && isset($_GET['two'])) {
    
    		echo '<h1>Heading 2</h1>';
    
    	}
    }
    else if (isset($_GET['one'])) {
    
    	echo '<h1>Heading 1</h1>';	
    
    ?>

    මේක ට්‍රයි කරපන්.


    මේකෙ මචං heading 1 එක මුලින් අනිවා ඩිස්ප්ලේ වෙන්න ඕන. ඉන් පස්සෙ තමයි පිළිවෙලින් heading 1 එක නැති වෙලා Heading 2 එක විතරක් පෙන්න ඕන. :D
     

    tcgunarathena

    Well-known member
  • Oct 5, 2007
    2,613
    647
    113
    මාතර
    PHP:
    $level_one = 'ok';
    	$level_two = 'ok'; 
    
    	if (isset($level_one) AND !isset($level_two)) {
    
    	    echo '<h1>Heading 1</h1>';  
    
    	}else{
    
    		echo '<h1>Heading 2</h1>';  
    
    	}

    simply mehema liyanna oka wada, TESTED !

    මේක වැරදි මචන් මොකද වෙන්නේ මෙහෙම වුනොත්

    /if_block_jump.php?two=2
     

    tcgunarathena

    Well-known member
  • Oct 5, 2007
    2,613
    647
    113
    මාතර
    මේකෙ මචං heading 1 එක මුලින් අනිවා ඩිස්ප්ලේ වෙන්න ඕන. ඉන් පස්සෙ තමයි පිළිවෙලින් heading 1 එක නැති වෙලා Heading 2 එක විතරක් පෙන්න ඕන. :D


    ඒ මොන හරුපයක්ද බන්
     

    Jecob Boman

    Well-known member
  • Dec 10, 2013
    1,333
    93
    48
    homagama
    PHP:
    $level_one = 'ok';
    	$level_two = 'ok'; 
    
    	if (isset($level_one) AND !isset($level_two)) {
    
    	    echo '<h1>Heading 1</h1>';  
    
    	}else{
    
    		echo '<h1>Heading 2</h1>';  
    
    	}

    simply mehema liyanna oka wada, TESTED !

    තෑන්ක්ස් මචං මේක නෙස්ටඩ් if දාල නම් කරන්න බෑ වගේ තමයි. :yes::D
     

    Jecob Boman

    Well-known member
  • Dec 10, 2013
    1,333
    93
    48
    homagama
    <?php
    if(isset($_GET['one'])) {
    if(isset($_GET['two'])) {
    echo '<h1>Heading 2</h1>';
    } else {
    echo '<h1>Heading 1</h1>';
    }
    }
    ?>


    mehema balapan

    අමාරුයි මචං ලොජික් එක තේරුම් ගන්න. මටත් පේන විදියට මේක Nested if වලින්නම් ගොඩදාගන්න බෑ වගේ :D