2016-07-20 18 views
1

Ich habe einen Button auf meiner Seite, der Informationen zu bestimmten Projekten anzeigt. Ich habe den Benutzer auf eine Seite mit diesen Informationen umgeleitet, also habe ich einfach Action= site.com/main?var=<?=$Var?...So fügen Sie Daten in ein Div-Popup ein

verwendet, aber ich wurde gebeten, diese Informationen in ein Popup zu zeigen. Also habe ich in einem Div-Popup codiert, aber ich weiß wirklich nicht, wie ich die Daten dorthin senden soll. Hier ist der Code in diesem 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> 

Wie Sie sehen können, habe ich versucht, eine Auswahl innerhalb der Div. Es hat am Ende nicht funktioniert. Es ist auch wichtig zu beachten, dass sich dieses Popup in einer separaten Datei von meiner Hauptseite befindet. Wählen Sie diese Einstellung hier vorbei ist aus about.php

ich js haben, die ich nutzen, um das Popup angezeigt oder ausgeblendet:

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

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

Ziemlich einfach Code, wirklich. Und hier ist der Knopf, der diese Funktion aufruft. Früher befand es sich in einem Formular, das die Daten auf die neue Seite schickte, aber jetzt hat dieses Formular keine "Aktion" mehr. Es sieht wie folgt aus:

<form method="post" target="popupAbout"> 
    <input type="submit" class="submit" onclick="exibirAbout();" value="About"/> 
            </form> 

ich ratlos bin, ehrlich gesagt, ich habe keine Ahnung, wie es zu tun, und ich kann es nicht um die Website finden. Denken Sie daran, dass ich bei der Arbeit bin und Jquery nicht verwenden kann, da wir es hier nicht verwenden. Irgendwelche Ideen?

Wäre es besser, die Div zu löschen und einen Iframe zu verwenden? Würde das etwas lösen?

+0

Sie sollten über 'AJAX' und' XHRequest' lesen und 'JS' verwenden, um das zu implementieren – xAqweRx

+0

Die PHP-Seite ist wirklich gefährlich, Sie injizieren direkt eine GET-Variable in Ihre Abfrage, ohne die Werte zu umgehen. Dies kann zu einer sehr einfachen SQL-Injection führen, ich würde mich lieber zuerst darum kümmern und dann über die Tatsache, dass mysql_ * prototyp offiziell veraltet ist, daher sollten Sie entweder zu mysqli_ * oder PDO migrieren. – briosheje

Antwort

1

PHP-Code wird vor HTML/Javascript ausgeführt, es spielt also keine Rolle, ob Sie die Abfrage "innerhalb des div" durchführen. Tatsächlich sollte Ihr Programm so strukturiert sein, dass es zuerst "Eingaben", dann "Verarbeitung" und am Ende "Ausgabe" macht. Wenn Sie Output und Verarbeitung mischen, können Probleme auftreten (zB wenn Sie einen Redirect-Header senden möchten).

Dann könnten Sie alle Daten in das (verborgene) Div schreiben, wenn die Site generiert wird, und sie bei einem bestimmten Event anzeigen. Aber es scheint, dass Sie die Informationen mit der POST-Anfrage benötigen ... dann ist Ihre Lösung AJAX (JS sendet eine Anfrage an ein PHP-Skript, ohne die gesamte Seite neu zu laden). In diesem Fall können Sie die Ergebnisse dynamisch hinzufügen. Bitte beachten Sie: AJAX ist Javascript-Technik, die nicht spezifisch für jquery ist. Sie möchten vielleicht nicht jquery verwenden, aber Sie müssen JavaScript verwenden. Ich würde jedoch eine JS-Bibliothek empfehlen, da es das Leben einfacher macht.

Letzte Anmerkung: Verwenden Sie nicht "onclick" für die Schaltfläche, sondern "onsubmit" für das Formular - ein Formular kann ohne Klicken auf den Absenden-Button gesendet werden!

Verwandte Themen