Я вызываю консольное приложение из 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 и нового сеанса. Как я могу это достичь?
Зачем вам нужно отменять каждую сессию? –
Я отключил его, потому что я решил решить эту проблему, но это не так, как было принято предыдущие значения сеанса. – user1583647