-5

我有一个带有 CSS 样式的 div overflow: scroll;。这是一个长长的列表,向下滚动很远,但 div 的高度只有 300px。如果我向下滚动并单击一个项目,则内容会填充窗口的右侧(列表位于左侧)。但是,列表自然会顶到顶部来刷新(需要刷新才能从MySQL数据库中抓取内容)。

我知道,理想情况下,使用 JavaScript、jQuery 或 AJAX 的组合可能效果最好——但我只在小范围内使用 JS 和 jQuery,而根本没有 AJAX。我对PHP更熟悉。

编辑: 由于 PHP 不能做到这一点,什么是最好的实现方式以及如何实现?

Edit2: 这是我点击的链接:

<a href="items.php?id=<?php echo $cat_id; ?>&amp;item=<?php echo urlencode($row['item']); ?>"><?php echo $row['item']; ?></a>
4

3 回答 3

2

刷新页面后,您是否尝试通过 ID 访问您的元素?

基本上在您的网址中添加“#elementClickedId”?

类似的东西: http ://www.w3.org/TR/html4/struct/global.html#adef-id

于 2013-01-31T16:47:00.390 回答
2

在您的 html 中:

<div class='item_in_list'><a href='javascript:item_click(<?php echo $id;?>)'>Item 1</a></div>

然后是javascript:

function item_click(id)
{
$.ajax({
 type:'get',
 data:{item_id:id},
 url:'yourphppage.php',
 dataType:'html',
 success:function(response){
  $('#page_body').html(response);
  return false;
 }
});
}
于 2013-01-31T16:41:54.987 回答
1

尝试玩这个(假设 jQuery 已加载):

<script>

$( '.list a' ).click( function( e ) {

    e.preventDefault();

    alert( 'Loading...' );

    $( '#resultboxontheright' ).load( 'foo.php?id=' + $( this ).attr( 'data-foo' ), function() {

        alert( 'Done!' );

    } );

} );

</script>


<ul class="list">
    <li><a href="foo.php?id=bar" data-foo="bar">Foobar</a></li>
    <li><a href="foo.php?id=foo" data-foo="foo">Foofoo</a></li>
</ul>

<div id="resultboxontheright"></div>

和 foo.php:

<?php

echo '<h4>' . $_GET['id'] . '</h4>';
于 2013-01-31T16:52:39.063 回答