2016-07-20 2 views
1

특정 프로젝트에 대한 정보가 담긴 페이지가있는 버튼이 있습니다. 나는이 정보를 보여주는 페이지로 사용자를 리디렉션 했으므로 간단하게 사용했습니다. Action= site.com/main?var=<?=$Var?...Div 팝업에 데이터를 추가하는 방법

그러나이 정보를 팝업으로 표시하도록 요청 받았습니다. 그래서 내가 Div 팝업에 코드를 붙 였지만 실제로 어떻게 데이터를 보낼지 모르겠습니다. 다음은이 Div의 코드입니다.

<?php 
    if(!empty($_POST['proj_id'])||!empty($_POST['task_uid'])) 
      die("Invalid proj_id or task_uid."); 

     $query = " 
     SELECT pm.id, 
       pm.proj_id, 
       pm.task_uid, 
       pp.task_id, 
       pp.pipeline_name, 
       pm.proj_pipeline_order, 
       pcrs.gestor_projeto, 
       pcrs.prioridade, 
       pcrs.tecnologia, 
       pcrs.resp_programa, 
       eng.ativo 

     FROM projetos_main pm 

     INNER JOIN projetos_pipeline pp 
        ON pm.task_uid = pp.task_uid 

     RIGHT JOIN pcrs 
        ON pp.pcr = pcrs.num_doc 

     LEFT JOIN engcom.top_issues_main eng 
        ON pcrs.num_doc = eng.pcr 

       WHERE pm.pcr = '".$_GET['pcr']."' 

       ORDER BY pm.task_uid ASC 


      "; 
     $result = mysql_query($query) or die(mysql_error()); 

     $row = mysql_fetch_array($result); 


    ?> 
     <tr> 
    <td> 
<label style='top: 5px; font-weight: bold; text-align: center'> 
    PCR Information: 
</label> 
    </td> 
    </tr> 
    <table style='margin:0 auto; margin-top: 45px;'> 


    <tr> 
     <td><b>Pipeline:</b></td> 
     <td><?=$row['pipeline_name']?></td> 
    </tr> 

    <tr> 
     <td><b>Project Position:</b></td> 
     <td><?=$row['task_id']?></td> 
    </tr> 

    <tr> 
     <td><b>Project Manager:</b></td> 
     <td><?=$row ['gestor_projeto']?></td> 
    </tr> 

    <tr>  
     <td><b>Portfolio Manager:</b></td> 
     <td><?=$row['resp_programa']?></td> 
    </tr> 

    <tr> 
     <td><b>Top Issue:</b></td> 
     <td><?=$row ['ativo']?></td> 
    </tr> 

    <tr>  
     <td><b>Technology:</b></td> 
     <td><?=$row ['tecnologia']?></td> 
    </tr> 

</table> 

위에서 볼 수 있듯이 Div의 Select inside를 시도했습니다. 결국에는 효과가 없었습니다. 또한이 팝업은 내 메인 사이트와 별개의 파일에 있다는 점에 유의해야합니다. 정말,

function exibirAbout(){ 
    document.getElementById('popupAbout').style.display = 'block'; 
} 

function ocultarAbout(){ 
    document.getElementById('popupAbout').style.display = 'none'; 
} 

예쁜 기본 코드 :이 여기에 선택 내가 표시하거나 팝업을 숨기는 데 사용하는 JS가 About.php

에서입니다. 그리고이 함수를 호출하는 버튼이 있습니다. 이전에는 새 페이지로 데이터를 보낸 양식 내부에 있었지만 이제는이 양식에 더 이상 "작업"이 없습니다.

내가 손해를보고있어
<form method="post" target="popupAbout"> 
    <input type="submit" class="submit" onclick="exibirAbout();" value="About"/> 
            </form> 

, 정직, 내가 그것을 수행하는 방법 아무 생각이 없다, 나는 사이트 주위를 찾을 수 없습니다 : 그것은 다음과 같습니다. Jquery를 사용할 수 없으므로 저는 일하고 있습니다. 여기서 사용하지 않습니다. 어떤 아이디어?

Div를 삭제하고 Iframe을 사용하는 것이 더 좋습니까? 그게 아무것도 풀겠습니까?

+0

당신은'AJAX'와'XHRequest'에 대해서 읽고 이것을 구현하기 위해'JS'를 사용해야합니다. – xAqweRx

+0

PHP 측은 정말 위험합니다. 여러분은 값을 이스케이프하지 않고 직접 GET 변수를 쿼리에 주입하고 있습니다. 이것은 매우 쉬운 SQL injection으로 귀결 될 수 있습니다. 우선 mysql_ * prototype이 공식적으로 사용되지 않으므로 mysqli_ * 또는 PDO로 마이그레이션해야합니다. – briosheje

답변

1

PHP 코드는 HTML/Javascript보다 먼저 실행되므로 "내부 div"를 입력해도 상관이 없습니다. 실제로 프로그램은 "입력"을 먼저 처리 한 다음 "처리"를 수행하고 결국에는 "출력"을 수행하도록 구조화되어야합니다. 출력을 혼합하고 처리 할 때 문제가 발생할 수 있습니다 (예 : 리디렉션 헤더를 보내려는 경우).

그런 다음 사이트가 생성 될 때 모든 데이터를 (숨겨진) div에 기록하고 특정 이벤트에 표시 할 수 있습니다. 하지만 POST 요청으로 정보가 필요할 것 같습니다. 솔루션은 AJAX입니다 (JS는 전체 페이지를 다시로드하지 않고 PHP 스크립트에 요청을 보냅니다). 이 경우 결과를 동적으로 추가 할 수 있습니다. 참고 : AJAX는 jquery에만 국한되지 않는 Javascript 기술입니다. jquery를 사용하고 싶지는 않지만 자바 스크립트를 사용해야합니다. 나는 JS 라이브러리를 권하고 싶다. 삶이 더 쉬워지기 때문이다.

마지막 사이트 노트 : 버튼에는 "onclick"을 사용하지 말고 양식에 대해서는 "onsubmit"을 사용하십시오 - 제출 버튼을 클릭하지 않고 양식을 제출할 수 있습니다!

관련 문제