2012-08-16 34 views
1

我有一系列的div style =「display:none;」和即時通訊使用jQuery的顯示每個div的隱藏。

其中一個div是一個選擇菜單,我想將表單提交給自己$ _SERVER ['PHP_SELF']。我如何提交表格,但仍然保持正確的當前div。

在此先感謝。

<div style="display:none;"> 
    <form action='<?php echo $_SERVER['PHP_SELF']; ?>' method='post' name='form_filter' > 
     <select id="employee_user" name="employee_user" onchange="this.form.submit();"> 
     <option value="">Select Staff</option> 

    <?php // $Id: emails.php, 27/06/2011 mbrennand 
    $users_in_department = mysql_query('SELECT DISTINCT(employee) FROM holiday_entitlement_academic WHERE line_manager = \'' . $username. '\''); 
    $users_in_department2 = mysql_query('SELECT DISTINCT(employee) FROM holiday_entitlement_business WHERE line_manager = \''.$username.'\''); 

    while($user_in_dept = mysql_fetch_array($users_in_department)) { 
    echo '<option value="'.$user_in_dept['employee'].'">'.$user_in_dept['employee'].'</option>'; 
    } 
    while($user_in_dept2 = mysql_fetch_array($users_in_department2)) { 
    echo '<option value="'.$user_in_dept2['employee'].'">'.$user_in_dept2['employee'].'</option>'; 
    } 
    ?>  
    </select> 
    </form> 
    </div> 


    <div style="display:none;"> 
    </div> 

    <div style="display:none;"> 
    </div> 

    <div style="display:none;"> 
    </div> 

編輯.... CODE改進

<script type="text/javascript"> 
$('#employee_user').on('change', function(){ 
    $.post('SELF', $('form input,form select').serializeArray(), function(data){ 
     // Form has submitted 
    }); 
}); 
</script> 

<div style="float:right;"> 
<form action='' method='post' name='form_filter' > 
    <select id="employee_user" name="employee_user"> 
    <option value="">Select Staff</option> 

<?php // $Id: emails.php, 27/06/2011 mbrennand 
$users_in_department = mysql_query('SELECT DISTINCT(employee) FROM holiday_entitlement_academic WHERE line_manager = \'' . $username. '\''); 
$users_in_department2 = mysql_query('SELECT DISTINCT(employee) FROM holiday_entitlement_business WHERE line_manager = \''.$username.'\''); 

while($user_in_dept = mysql_fetch_array($users_in_department)) { 
echo '<option value="'.$user_in_dept['employee'].'">'.$user_in_dept['employee'].'</option>'; 
} 
while($user_in_dept2 = mysql_fetch_array($users_in_department2)) { 
echo '<option value="'.$user_in_dept2['employee'].'">'.$user_in_dept2['employee'].'</option>'; 
} 
?>  
</select> 
</form> 
</div> 
<h2>STAFF HOLIDAY LEAVE</h2> 
<br/> 

<?php 
$username_indept = $_POST["employee_user"]; 

$is_academic_result = mysql_query('SELECT * FROM holiday_entitlement_academic WHERE employee = \'' . $username_indept . '\''); 
$is_business_result = mysql_query('SELECT * FROM holiday_entitlement_business WHERE employee = \'' . $username_indept . '\''); 

if($is_academic = mysql_fetch_array($is_academic_result)) { 
    switch($is_academic['units']) { 
     case 'days': 
      include_once('admin_academic_days.php'); 
      break; 
     case 'hours': 
      include_once('admin_academic_hours.php'); 
      break; 
     default: 
      break; 
} 
} else if ($is_business = mysql_fetch_array($is_business_result)) { 
    switch($is_business['units']) { 
     case 'days': 
      include_once('admin_business_days.php'); 
      break; 
     case 'hours': 
      include_once('admin_business_hours.php'); 
      break; 
     default: 
      break; 
    } 
} 
else { 
     include_once('no_record.php'); 
} 
?> 
+0

你是什麼意思*「還停留在正確的當前股利。」 *? – 2012-08-16 09:25:35

+0

停留在具有窗體的div中,顯示的div。 – Codded 2012-08-16 09:42:13

+0

提交重新加載一個新頁面,你不留任何東西 – 2012-08-16 09:55:44

回答

2

兩個選項:

  1. 阿賈克斯

  2. 提交表單提供的信息的費用相加你請求將確定哪個div應該在頁面重新加載時最初可見。

    這可以通過隱藏輸入,動作查詢參數action="?active_div=3"或類似的東西來完成。

順便說一句,如果提交到當前的URL,你可以離開action屬性附加傷害空。

3

有三種方式來解決這個問題:

  • 使用AJAX,在這種情況下,頁面不會改變,仍然是你留在正確的DIV這種情況下,靜態的。
  • 使用與AJAX相同的iframe目標
  • 使用表單元素來了解已填充了多少表單並隱藏/顯示依賴於該表單的部分。

另外,作爲提示,不要在表單提交中使用PHP_SELF。這是不安全的。

AJAX的例子提交:

$('#employee_user').on('change', function(){ 
    $.post('SELF', $('form input,form select').serializeArray(), function(data){ 
     // Form has submitted 
    }); 
}); 
+0

請看我的問題。我用完整的代碼修改了它。它不工作,你能看到任何問題嗎? – Codded 2012-08-16 10:12:45

+0

@Codded是的我的代碼只是一個例子,它不是一個複製和可粘貼的片段。 'SELF'需要指向你想要使用的頁面。 – Sammaye 2012-08-16 10:15:19

+0

@Codded即PHP_SELF ='mine.php',因此'SELF'將是'mine.php'。 – Sammaye 2012-08-16 10:15:55