【问题标题】:javascript variable value to php variable and loading tab content by defaultjavascript变量值到php变量并默认加载选项卡内容
【发布时间】:2013-03-06 13:49:54
【问题描述】:
var Result; 
$(document).ready(function(){  
location.href="index.php?Result=" +1;  
    $("a").click(function(){        
        Result=$(this).attr('id');   
        location.href="index.php?Result=" + Result;

    })
});

<div id="tabs">
    <ul> 
        <?php include "config.php"; 
        $query = "select * from tabs"; 
        $result = mysql_query($query); 
        while ($row = mysql_fetch_array($result)) { 
            $name = $row['name']; $tabid = $row['tabid']; 
            echo '<li><a id="' . $tabid . '" href="#' . $name . '"> ' . $name . '</a></li>'; 
        } ?> 
    </ul>
</div>

嗨, 我有七个选项卡,它们是使用 mysql 查询从数据库中获取的,在每个选项卡上单击时将选项卡值从 javascript 传递到 php 变量,并使用该选项卡值运行所需的查询以将数据加载到选项卡中,我的问题是无法默认情况下加载第一个选项卡内容,单击第一个选项卡内容正确加载,我希望默认加载第一个选项卡内容这里使用 jquery ui 选项卡,当我在 onclick 之前通过调用第一个选项卡遵循上述代码时它是加载多次....默认情况下甚至焦点都移动到第一个选项卡...建议任何解决方案......谢谢....

【问题讨论】:

  • 如果你使用的是 jquery ui tabs 那么它的代码在哪里呢?上面的代码将重定向到给定的 url。
  • 这是标签代码....

标签: php jquery mysql jquery-ui


【解决方案1】:

原因是,您正在从同一个文件重定向到 index.php。因此,在第一次执行文档就绪功能期间,它会将您重定向到具有不同查询字符串参数的同一文件。但是由于文档准备功能现在将再次执行,因此它会继续重新加载。

最简单的方法是在PHP中处理这个,当“结果”参数未设置时,将其设置为1。

以javascript方式,您可以获取查询字符串值并检查是否设置了“结果”参数。如果未设置,则将页面重定向到 index.php?Result=1。

获取查询字符串参数的 javascript 方法如下。

function param(name)
{
var url = window.location.search.substring(1);
var query = url.split('?')[0];
var data = query.split('&');
    for(var i in data)
    {
      if(data[i].split('=')[0] == name)
      {
         return data[i].split('=')[1];
      }
    }
}

你可以通过使用来调用它

var page_num = param('Result');
if(page_num == null)
{
   location.href = 'index.php?Result=1';
}

【讨论】:

  • 那么,您需要显示第一个选项卡的内容,但不应该关注任何选项卡?
  • yes....没有标签应该聚焦(或)相关标签应该聚焦于内容......但是这里的标签和内容加载工作正常......但是标签焦点正在移动到第一个标签.....我希望你明白我想说的话
  • 我猜你的意思是,当这个人点击第 5 个标签时,第 5 个标签的内容会加载,但标签名称的焦点转到第一个标签?还是标签名称和内容的焦点都移动到第一个标签?
  • yes .... 加载第 5 个选项卡的内容,但选项卡名称的焦点转到第一个选项卡...
【解决方案2】:

试试这个

var Result = 1; 
 $(document).ready(function(){  
   location.href="index.php?Result=" + Result;  
   $("a").click(function(){        
      Result=$(this).attr('id');   
      location.href="index.php?Result=" + Result;

  })
})

【讨论】:

  • 是的,它会重新加载.. 因为您正在调用 location.href... 来动态加载,所以您需要使用 ajax 来获取内容而无需重新加载
【解决方案3】:

这将自动触发第一次标签点击。

<script type="text/javascript">
$('.parent > a').trigger('click');
</script>

【讨论】:

    【解决方案4】:
    var Result; 
    $(document).ready(function(){  
        $("a").click(function(){        
            Result=$(this).attr('id');   
            location.href="index.php?Result=" + Result;
    
        })
    }
    

    和正文标签

    <body onload="location.href='index.php?Result=1'">
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-06-25
      • 1970-01-01
      • 2017-07-13
      • 2011-08-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-21
      相关资源
      最近更新 更多