2011-07-26 19 views
1

我正在使用jQuery 1.6.1。這是主代碼:傳遞複選框值顯示/隱藏divs並存儲在數據庫中

<div>Sidebar (on/off): <input id="sidebar" name="Sidebar" type="checkbox" value="value1"/></div> 

<?php if ($row_rsPage['fullcontent']==1) 
{ ?> 
     <div id="site_layout_full"> 
     <?php 
     $oFCKeditor = new FCKeditor('FCKeditor1'); 
     $oFCKeditor -> BasePath = 'fckeditor/'; 
     $oFCKeditor -> Height = '455'; 
     $oFCKeditor -> Value = $row_rsPage['pg_cont']; 
     $oFCKeditor -> Create(); 
     ?> 
     </div> 
    <?php } else { ?> 
     <div id="site_layout_content"> 
     <?php 
     $oFCKeditor = new FCKeditor('FCKeditor1'); 
     $oFCKeditor -> BasePath = 'fckeditor/'; 
     $oFCKeditor -> Height = '455'; 
     $oFCKeditor -> Value = $row_rsPage['pg_cont']; 
     $oFCKeditor -> Create(); 
     ?> 
     </div> 
     <div id="site_layout_sidebar"> 
     <?php 
     $oFCKeditor2 = new FCKeditor('FCKeditor2'); 
     $oFCKeditor2 -> BasePath = 'fckeditor/'; 
     $oFCKeditor2 -> Config['CustomConfigurationsPath'] = '../sidefckconfig.js' ; 
     $oFCKeditor2 -> ToolbarSet = 'Short'; 
     $oFCKeditor2 -> Height = '455'; 
     $oFCKeditor2 -> Value = $row_rsPage['pg_sidecont']; 
     $oFCKeditor2 -> Create(); 
     ?> 
     </div> 

$row_rsPage['fullcontent']==1只顯示1個格(site_layout_full),當它不是它顯示2周的div(site_layout_contentsite_layout_sidebar)。

現在我想要做的就是切換而不提交頁面並將值存儲到數據庫中。

所以我使用側邊欄來切換狀態,但我怎麼得到這個值到MySQL。

最初這個工作沒有AJAX與我提交表單,然後將其存儲在數據庫中。但我希望它是互動的,所以你不必提交整個頁面來改變佈局。

我使用這個切換(但不工作):

if (document.getElementById('sidebar').checked) { 

     // display fullcontent 
     document.getElementById('site_layout_sidebar').style.display = 'none'; 
     document.getElementById('site_layout_content').style.display = 'none'; 
     document.getElementById('site_layout_full').style.display = 'block'; 

    } 

    else { 

     // display site_content, site_sidebar 
     document.getElementById('site_layout_full').style.display = 'none'; 
     document.getElementById('site_layout_content').style.display = 'block'; 
     document.getElementById('site_layout_sidebar').style.display = 'block'; 

    } 

,我如何保存這個值(複選框的狀態)爲$row_rsPage['fullcontent']

  • 選中複選框:$fullcontent0
  • 複選框選中:$fullcontent1

任何人可以幫助解決這個問題?

我修改了這個結果: 在javascript附近添加了$(document).ready(function(){}。這引發了事件,但我隱藏了div標籤site_layout_full,因爲數據庫中的每個條目都設置了完整內容0

所以我實際上隱藏div標籤,並且不能再次顯示

我必須檢查與JavaScript的數據庫,然後切換,但如何

所以我可以做到這一點:?

document.getElementById('site_layout_full').style.display = 'none'; 
document.getElementById('site_layout_content').style.display = 'block'; 
document.getElementById('site_layout_sidebar').style.display = 'block'; 

並擺脫if ($row_rsPage['fullcontent']==1)

總之我必須:

  • 檢查fullcontent數據庫(不與PHP的,但用JavaScript)
  • 使用該值顯示隱藏的div標籤(JavaScript的)
  • 動態顯示/隱藏標籤,當用戶完成後,我將值提交給數據庫(使用php)

請問如何?

+0

歡迎來到StackOverflow! – bgw

回答

1

以下是部分答案。也有一些是錯誤的,但我還沒有找到它:

的JavaScript/AJAX代碼:

$(document).ready(function() { 
    $pageid = document.getElementById('pg_id').value; 
    $.post("senddata.php",{ id: $pageid },function (ContentFull) { 
     alert("DATA = " + ContentFull); 
     if (ContentFull==0) // 1 = Fullcontent - 0 = sidebar 
     { 
      $('input[name=Sidebar]').attr('checked', true); 
     } else { 
      $('input[name=Sidebar]').attr('checked', false); 
     } 
    }); 


    $('#sidebar').change(function(){ 
     $('#site_layout_sidebar').toggle(); 
     $('#site_layout_content').toggle(); 
     $('#site_layout_full').toggle(); 
    }); 

if (document.getElementById('sidebar').checked) { 
      // display fullcontent 
      document.getElementById('site_layout_full').style.display = 'none'; 
      document.getElementById('site_layout_content').style.display = 'block'; 
      document.getElementById('site_layout_sidebar').style.display = 'block'; 
     } 
     else { 
      // display site_content, site_sidebar 
      document.getElementById('site_layout_full').style.display = 'block'; 
      document.getElementById('site_layout_content').style.display = 'none'; 
      document.getElementById('site_layout_sidebar').style.display = 'none'; 
      } 
     }); 

,這是senddata.php:

$pid = $_POST['id']; 

    mysql_select_db($database_conndb, $conndb); 
    $query_Recordset1 = "SELECT tbl_pages.pg_id, tbl_pages.fullcontent FROM tbl_pages WHERE tbl_pages.pg_id='$pid'"; 
$Recordset1 = mysql_query($query_Recordset1, $conndb) or die(mysql_error()); 
$row_Recordset1 = mysql_fetch_assoc($Recordset1); 
$totalRows_Recordset1 = mysql_num_rows($Recordset1); 

$ContentFull = $row_Recordset1['fullcontent']; 

echo($ContentFull); 

mysql_free_result($Recordset1); 

現在,我得到正確的數據回到請求,但我認爲某處有一個故障.... 即使警報數據給我我似乎總是得到完整的內容佈局0

我在做什麼wro ng ...

相關問題