2011-07-26 21 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 ...

相关问题