2017-02-06 5 views
1

프로그래밍에 익숙하지 않아 논리가 적다는 생각이 듭니다. 그것은 당신 중 일부는 바보처럼 보일 수도 있지만, 학습 과정에서 나는 바보입니다. php ifelseif 조건을 사용하여 url 변수를 기반으로 정보를 표시하려고합니다. 그러나 단 하나의 조건 만 가질 때 제대로 작동하지만 정의되지 않은 인덱스 오류가 발생하지 않고 동일한 페이지에서 여러 조건으로이 작업을 수행하는 방법은 궁금합니다. 아니면 내 논리에 결함이 있는가?PHP의 URL에서 여러 변수를 가져 오는 것

  1. 클릭 링크에 대한 구체적인 뭔가를 표시하는 변수

  2. URL에

    잡아 변수

  3. 사용 변수를 얻기 위해 : 내가 할 노력하고있어 여기에

    계기판

당신이하고있는 모든 사용 등 선택 인 경우 10

leftsidemenu.php

<a href='home.php?viewcompanystructure=companystructure&company=<?php echo(rand(100000000,100000000000));?>'>Company Structure</a> 

    <a href='home.php?setupqualifications=qualificationssetup&company=<?php echo(rand(100000000,100000000000));?>'> 
      Qualifications Setup 
      </a> 

    <a href='home.php?viewprojectsclients=projectsclients&company=<?php echo(rand(100000000,100000000000));?>'> 
       Projects/Client Setup</a> 

dashboard.php

<?php 
$companytable = $_GET['viewcompanystructure'] ; 
if($companytable == 'companystructure') : 

    include 'tables/companytable.php'; 
return true; 
?> 

<?php 
$qualificationsetuptable = $_GET['setupqualifications'] ; 
elseif($qualificationsetuptable == 'qualificationssetup') : 
    include 'tables/qualificationsetuptable.php' 
?> 

<?php 
$projectclientstable = $_GET['viewprojectsclients'] ; 
elseif($projectclientstable == 'projectsclients'): 
    include 'tables/projectclientstable.php' 
?> 

<?php else: ?> 
Display something else here. 

<?php endif; ?> 
+3

나는 당신의'true를 반환 믿는다'종료하고 다른 어떤 처리를 중지 할 수있는 PHP의 원인이됩니다. 함수에서 호출하는 메서드로 값을 반환하는 데 사용되지만 함수를 사용하지 않으므로 제거 할 수 있습니다. – Andy

+0

'return true;를 사용하여 이스케이프를하지 않으면 읽을 수없는'if-statement '에서 정의되지 않은 인덱스를 얻습니다. –

+0

'$ qualificationsetuptable = $ _GET [ 'setupqualifications'];가 실제로 첫 번째 if 문 안에 있기 때문에 $ _GET [ 'viewcompanystructure']와 같은 $ _GET 색인이 첫 번째 장소에 설정 – Scuzzy

답변

0

, 나는 대안을 제안하고 싶습니다 귀하의 코드 레이아웃. 지정된 URL home.php?view=companystructure에 대한

...

switch((isset($_GET['view']) === true) ? $_GET['view'] : null) 
{ 
    case 'companystructure': 
    include('tables/companytable.php'); 
    break; 
    case 'setupqualifications' 
    include('tables/qualificationsetuptable'); 
    break; 
    case 'viewprojectsclients': 
    include('tables/projectclientstable.php'); 
    break; 
    default: 
    include('dosomethingelse.php'); 
    break; 
} 
+0

나는 switch 문에 대해 읽었는데 생각하지 못했습니다. 자사의 "더 예쁜"솔루션이지만 아무 것도 일어나지 않아 내 코드에서 작동하지 않기 때문에 답변으로 표시 할 수 없습니다. –

+0

괜찮습니다. 오류보고의 모든 측면을 사용할 수 있도록 설정하는 것이 좋습니다. 일반적으로 문제가 발생하지 않는 한 PHP로 흰색 화면을 표시하는 것은 매우 드뭅니다. – Scuzzy

관련 문제