我正在尝试使用引导选项卡在同一PHP页面上使用<a>
标记和data属性发送PHP变量:
HTML(Bootstrap选项卡选项):
<a style='padding:20px;' href='#tab_e' data-page='$page' class='passrss' data-rssid='$rssid' data-toggle='tab'>Test</a>
PHP(存储在#tab_e标签中):
$rsspassedid = GET $rssid from the a tag (data-rssid)
我想在点击时获取存储在data-rssid中的值,并将其传递给同一PHP文件中的变量,以便在使用#tab_e
打开选项卡时,mySQL语句将运行基于$ rssid中提供的值并显示查询结果。我不确定是否需要任何jQuery / AJAX,但是可以将数据存储在PHP中<a>
标签的data属性中吗?
我已经尝试将变量存储在分页链接中,但仍然没有运气,这是我创建的XHR对象:
<script>
$(document).ready(function () {
$('.passrss').click(function () {
$('span.pass-tabe').load('tabe.php?rssid=' + $(this).data('rssid') + '&page=' + $(this).data('page'));
});
});
</script>
Tabe将存储在a标签中的变量传递给单独的php文件(tabe.php
),然后使用<span class="pass-tabe"></span>
加载到浏览器中,就像分页一样 - 链接存储在tabe.php中文件,但他们返回主要的php文件,因此分页无法工作,例如
originalphpfile.php?page=$page&rssid=$rssidpassed&pageurl=$x#tab_e
注意:$rssidpassed
存储在tabe.php
中,它来自XHR对象,例如
$_GET['rssid']
我已经添加了下面的分页代码,我现在遇到的问题存放在tabe.php中:
$perpage = 10;
$pageurl = (isset($_GET['pageurl'])) ? (int)$_GET['pageurl'] : 1;
$start = ($pageurl - 1) * $perpage;
$pagequery = mysql_query("SELECT COUNT('topic_id') FROM topic WHERE cat_id='$page' AND topic.users_id = '$rssid'");
$pagination = ceil(mysql_result($pagequery, 0) / $perpage);
//query goes here
//pagination numbers
if($pagination >= 1){
echo "<div style='text-align:center;'><ul class='pagination'>";
for($x=1; $x<=$pagination; $x++){
echo ($x == $pageurl) ? "<li class='active'><a href='originalphpfile.php?page=$page&pageurl=$x#tab_e'>$x</a></li>":"<li><a href='originalphpfile.php?page=$page&pageurl=$x#tab_e'>$x</a></li>";
}
echo "</ul></div>";
}
当我点击分页链接时,它不会加载第二,第三等结果集,因为它返回到originalphpfile.php
有没有解决这个问题?
答案 0 :(得分:0)
我会继续把它变成一个答案,因为我们的评论块越来越长了。
在PHP模板中,要将PHP转换为有用的东西,您需要执行以下操作:
// file1.php
// notice <?= ?> is quick echo, the same as <? echo $rssid; ?>
<a style='padding:20px;' href='#tab_e' data-rssid='<?= $rssid ?>' data-toggle='tab'>Test</a>
根据帖子,在你的javascript中,你认为获得$ rssid的原因是因为你没有回应这个价值。
// file2.php
$page = array_key_exists($_GET,'page') && is_numeric( $_GET['page'] ) ? $_GET['page'] : 1
// do query i.e select * from x offset $page * $per_page limit $per_page
// do stuff with your pagination in a loop defining an index $number
<a class="pagination" onclick="getPage(<?= $number ?>)"><?= $number; ?></a>
然后在jquery:
// Call this when they click the tab
var id;
function setId(id){
id = id;
getPage(1);
}
// call this when they click the pagination
function getPage(number){
$('span.pass-tabe').load('tabe.php?rssid=' + $id + '&page=' +number )
}
请按照示例代码,似乎您正在做一些复杂的事情,并且很难准确掌握您的确切用例。
答案 1 :(得分:0)
问题已解决,我将AJAX反映到tabe php文件中并更改了分页HTML链接:
tabe.php分页链接:
<a href='#tab_e' class='passrssurl' data-rssid='$rsspassedid' data-url='$x' data-page='$page' data-toggle='tab'>
tabe.php echo AJAX:
echo "<script>
$(document).ready(function () {
$('.passrssurl').click(function () {
$('span.pass-tabe').load('tabe.php?rssid=' + $(this).data('rssid') + '&page=' + $(this).data('page') + '&pageurl=' + $(this).data('url'));
});
});
</script>";