2013-06-11 2 views
0

Я вызываю консольное приложение из php, которое дает мне некоторый вывод. Я должен показать вывод в div после запуска консольного приложения. Я передал вывод из консольного приложения в виде СЕССИИ на другую страницу, чтобы отобразить его. Я использовал ajax и javascript на моей веб-странице, что усложняет ее. Теперь, когда я печатаю выход выход в DIV является предыдущее значение кода SESSION.My выглядит следующим образом:php session, отображающий предыдущие значения сеанса

Главная страница:

<!DOCTYPE html> 
<html> 
    <head> 

        $('#file').live('change', function()  
        { 
        $("#preview").html(''); 
        $("#preview").html('<img src="images/loader.gif" alt="Uploading...."/>'); 
        $("#imageform").ajaxForm(
        { 
        target: '#preview' 
        }).submit(); 

        <script type="text/javascript"> 
        function myfunction() 
        { 
        $("#display").html(''); 
        $("#display").html('<img src="images/loader.gif" alt="Uploading...."/>'); 
        $("#retrieveimageform").ajaxForm(
        { 
        target: '#display' 
        }).submit(); 

        $('#tags').html('<?php include 'Tagsdisplay.php';?>'); 
%I want to include this only after it goes through the retrieveimage1.php page 
where the console application is called and the session is created but this is 
not happening the tags div is shown before the console application is called 
and the other results are displayed on the display div 
        $('#tags').show(); 
        }; 


        </script> 

     <title></title> 
    </head> 
    <body> 
     <div id="maindiv"> 
       <div id="banner"> 
       <?php 
       include 'Header.php'; 

       ?> 
       </div> 
       <div id="wrapper"> 

         <div id="imageupload"> 
        <form action="uploadimage.php" method="post" 
         enctype="multipart/form-data" id="imageform"> 
         <label for="file">Upload your image:</label> 
         <input type="file" name="file" id="file"><br> 

        </form> 
         </div> 
         <div id='preview'> 
         </div> 
        <div id='tags'> 

        </div> 

         <div class="clear"></div> 

        <form action="retrieveimage1.php" method="post" 
          id="retrieveimageform"> 

         ................................ 

         <input type="submit" name="search" value="Search" id="btnSearch" onclick="myfunction()"> 

        </form> 
    <div id="display"></div> 

       </div> 

retrieveimage.php где называется приложение консоли и создается новая сессия:

  session_start(); 
      $start_time= microtime(true); 
     if (isset($_SESSION['img'])) 
     { 
       $image=$_SESSION['img']; 
       $_SESSION['coarselbl1']=" "; 
       $_SESSION['coarselbl2']=" "; 
       $_SESSION['coarselbl3']=" "; 
       $_SESSION['finelbl1']=" "; 
       $_SESSION['finelbl2']=" "; 
       $_SESSION['finelbl3']=" "; 
       $_SESSION['finelbl4']=" "; 
       $_SESSION['category']=" "; 
        if($_POST['cat']=='handbag') 
          { 
           $_SESSION['category']="Bag"; 
           $cwt=$_POST["slider1"]; 
           $fwt=$_POST["slider2"]; 
           $twt=$_POST["slider3"]; 
           $swt=$_POST["slider4"]; 

           $addr="handbags31_fourth.exe $image $cwt $fwt $swt $twt"; 
            exec($addr,$data); 

            $_SESSION['coarselbl1']=$data[2]; 
            $_SESSION['coarselbl2']=$data[3]; 
            $_SESSION['coarselbl3']=$data[4]; 
        } 

TagsDisplay.php, где отображаются теги:

<?php 
     session_start(); 
     echo $_SESSION['category']."<br/>"; 
    if($_SESSION['category']=="Bag") 
    { 
     echo "Coarse Color: ".$_SESSION['coarselbl1'].",".$_SESSION['coarselbl2'].",".$_SESSION['coarselbl3']."<br/>"; 
     unset($_SESSION['coarselbl1']); 
     unset($_SESSION['coarselbl2']); 
     unset($_SESSION['coarselbl3']); 


    } 


?> 

Проблема заключается в том, что когда я нажимаю кнопку поиска, вызывается myfunction, а div div выводится перед отображением div, а напечатанное значение - это предыдущее значение сеанса. Я хочу, чтобы тег div появился только после отображения отображения div и нового сеанса. Как я могу это достичь?

+0

Зачем вам нужно отменять каждую сессию? –

+0

Я отключил его, потому что я решил решить эту проблему, но это не так, как было принято предыдущие значения сеанса. – user1583647

ответ

0

Закрепить Jquery линии

$('#tags').html('<?php include 'Tagsdisplay.php';?>'); 

к этому:

$('#tags').html('<?php include "Tagsdisplay.php";?>'); 

(обратите внимание на кавычки), потому что вы даже не включая файл, который отменяет значения предыдущей сессии.

+0

спасибо, но проблема все еще не решена, теперь div пустой, и когда div отображается, как только я нажимаю кнопку, сеанс еще не установлен. Как я могу изменить его так, что только после вызова retrieveimage.php отображается тег div? – user1583647

+0

жаль, что это не пусто. Я всегда получаю предыдущее значение SESSIOn, когда я запускаю его 2 раза – user1583647

Смежные вопросы