2015-05-11 74 views
0

這裏是我的問題,我知道只有HTML和PHP,我不知道如何使用JavaScript ......關於我的問題的所有解決方案似乎都解決了JavaScript,我想知道如果有一種方法可以用php來完成,這樣我就可以理解我的工作。html複選框onChange方法在PHP中

我想把一個複選框放在我的頁面的角落(例如「隱藏信息」),它會在選中時自動刷新頁面,這會隱藏頁面上的信息。

我目前做的是:

<?php 
if(isset($_GET['condition'])) 
    $_SESSION['condition'] = true; 
else 
    $_SESSION['condition'] = false; 
?> 
... 
... 
<form> 
    <input type="checkbox" name="hide" value="1" onChange="this.form.submit()" <?php if($_SESSION['hide']) echo "checked";?> > hide information 
</form> 

我面臨兩個問題:

  1. 第一個是我想要的複選框保持選中/取消刷新頁面時。 。我用我的php代碼解決了這個問題,但是肯定存在一些更好的方法來做到這一點。

  2. 當該框被選中時,頁面刷新時只有「hide = 1」作爲url參數,但我希望在頁面刷新之前保留所有其他參數。有沒有辦法刷新頁面,並保持所有的參數,同時知道該框被選中/取消選中?

感謝您的幫助,並對我的不良知識感到抱歉。

+0

你是否在這個文件中包含處理邏輯或所有邏輯的任何類,並且html在同一個文件中? – Baig

+0

不,我包含邏輯/數據的其他文件 – Arcyno

+1

你可以做的是,當表單提交時,你有'$ _POST'中的值,然後你可以在'input value =「中顯示那些提交的值$ _ POST ['field-數據']「''這樣你就不會丟失已經填充好的表單字段,然後使用'$ _GET'來放置你的隱藏邏輯 – Baig

回答

1

關於你問題的第二點,你可以移動的POST(或GET)數組到SESSION之一,然後用下面的代碼:

if(isset($_POST) & count($_POST)) { $_SESSION['post'] = $_POST; } 
if(isset($_SESSION['post']) && count($_SESSION['post'])) { $_POST = $_SESSION['post']; } 

我使用它來完全相同。當我重新加載頁面時,我保留髮布的值。

關於第一點,你已經在正確的道路上。

1

我看不出有什麼錯,你已經嘗試過如何解決問題1.

關於URL問題2,要麼把在session_start();在頁面頂部讓會話正常工作。

或者在此頁面的表單中隱藏輸入並回顯前頁面的POST值。

<form action="" method="post"> 
     <input type="hidden" name="condition" value="<?php echo $_POST['condition']; ?>" /> 
     <!-- have hidden inputs from previous page here, plus your checkbox to retain post values from the previous page --> 
    </form> 

雖然我建議POST這一點,你可以做得到,雖然它變得有點凌亂,像這樣:

<form action="thispage.php?condition=<?php echo $_GET['condition'];?>" /> 
+0

其他字段來自另一個頁面,但你是對的我可以使用POST而不是GET。它應該工作。 – Arcyno

+0

我看,看看我修改後的答案。 –