2015-01-05 45 views
1

我想使用会话变量,而不是使用jQuery来执行以下功能。 我有一些文字上我的网页invoice.php:PHP使用会话变量回显文本,并在设置其他会话变量时取消设置会话变量?

Text A 

我使用一个会话变量与此相呼应的文字作为我的网页上的标题,当用户第一次进入该页面,像这样:

<?php $_SESSION['ref'] = '<div class="inv_ref"><h23>Text A</h23></div>'; ?> 
<?php if (isset($_SESSION['ref'])) { 
echo $_SESSION['ref']; 
unset($_SESSION['ref']); } ?> 

然而,一旦用户提交网页的格式如下:

<form action="include/process_invoice.php" method="post" enctype="multipart/form-data"> 
<input type="text" id="partNumber" placeholder="e.g. PO" class="login_form" /> 
<input type="submit" value="Upload Invoice" name="submit" class="file"> 
</form> 

形式那么我的页面“process_invoice.php”上进行处理,一旦我做了呼应两新会话到我的网页invoice.php:

$_SESSION['message2'] = '<div id="message_box3"><div class="boxclose" id="boxclose" onclick="this.parentNode.parentNode.removeChild(this.parentNode);">&#10006;</div><h23>Thank You!</h23><p>You have successfully submitted your invoice.</p> </div>'; 

    $_SESSION['ref2'] = '<div class="inv_ref"><h23>REF: 12345678</h23></div>'; 
    unset($_SESSION['ref']); 

header("location:../invoice.php"); 

所以你可以看到我想取消设置我的会话“裁判”,这是我的“文本”和隐藏这段文字,因此是不可见的,当我的会议'ref2'是否可见?

这是可能的,如果有的话,有人可以告诉我我要去哪里吗?感谢

+0

您可以在未设置之后放置一个退出以查看它是否回声?也可以尝试在未设置之前退出。我认为你有重定向的问题。 – Peter

+0

你似乎真的在努力使用'$ _SESSION'。为什么要在第一个例子中输出后立即将事件存储在会话中?我建议删除消息和HTML以及会话存储之外的内容,并且只需要一个像'$ _SESSION ['invoice_status']'这样的变量,您可以更改其值,以表示您在进程中的位置(即,值为'提交','处理'等)。您可以简单地根据需要更改状态并根据该状态有条件地更改消息。 –

+0

*“我试图使用会话变量,而不是使用jquery来执行以下功能。”* - 从逻辑角度来看,这实际上没有什么意义,这就像说“我试图使用直升机而不是一根用来画这道栅栏的钓鱼竿“ - 以完全不同的方式使用根本不同的东西。 – CD001

回答

0

在你invoice.php,替换此:

<?php if (isset($_SESSION['ref'])) { 
echo $_SESSION['ref']; 
unset($_SESSION['ref']); } ?> 

此:

<?php if (isset($_SESSION['ref2'])) { 
echo $_SESSION['ref2']; 
} else { 
echo $_SESSION['ref']; 
} ?> 

当你invoice.php重装你会看到REF: 12345678而不是Text A