Ajax和PHP帮助

时间:2009-10-21 18:11:39

标签: php html ajax

我正在调用一个php代码,它使用AJAX显示mysql数据库的结果,以便页面不会重新加载!

在php代码中,我创建了一个菜单,用户可以选择只显示“私有广告”或“所有广告”。

目前,“所有广告”都显示在使用ajax的div容器中,因为我没有实现“仅显示私人”,这是我需要你帮助的地方......

是否可以使用AJAX检查用户是否单击显示的php代码中的“仅显示私有”选项卡,然后将变量设置为某些内容并将其发送到SAME php代码,然后使用该变量只显示“私有广告”,没有对mysql进行新查询?

如果您需要更多输入,请告诉我...... 更多输入:

这就是我想要的:

AJAX用于检查搜索条件... AJAX向PHP发送标准... PHP检查mysql数据库中的条件并在表格中显示,还创建了两个链接,一个用于“所有广告”,另一个用于“仅限私有” ... PHP回显显示表... AJAX在HTML页面中显示DIV容器中的表(innerhtml = blabla)

更新 这里有我想要的补充:用户点击PHP代码提供的链接之一,让我们说“私有”,AJAX再次反应并调用PHP代码......这次PHP代码以不同方式显示表格,过滤掉所有非私人广告...... AJAX显示在div容器中......

这是否可能,如果可以,请指出我正确的方向!

由于

4 个答案:

答案 0 :(得分:1)

php应该只输出表单,因此javascript可以在发送和/或显示广告之前检查表单值是什么,并根据表单值进行过滤(或者让AJAX请求的服务器端执行过滤)。

答案 1 :(得分:1)

如果我理解正确,您希望按标准对广告进行过滤。这可以很容易地在PHP代码中没有第二个查询。只需更改您的html代码,即可在描述该类别的广告条目中添加一个类。然后添加将过滤掉不需要的按钮。

HTML:

<a href="#" id="all_ads">Display all ads</a>
<a href="#" id="normal_ads">Display normal ads</a>
<a href="#" id="private_ads">Display private ads</a>
<div id="ads">
<ul>
   <li class="normal">Advertisment 1</li>
   <li class="normal">Advertisment 2</li>
   <li class="private">PRIVATE Advertisment 1</li>
   <li class="normal">Advertisment 3</li>
</ul>
</div>

<!-- Then add the following code to capture click events -->
<script type="text/javascript">
$(document).ready(function() 
{
    $('#normal_ads').click(function() 
    {
        $('#ads li:not(.normal)').hide();
        $('#ads li.normal').show();
        return false;
    });

    $('#private_ads').click(function() 
    {
        $('#ads li:not(.private)').hide();
        $('#ads li.private').show();
        return false;
    });
    $('#all_ads').click(function() 
    {
        $('#ads li').show();
        return false;
    });
});
</script>

这是从心里写的,我会马上交叉检查。好的,它有效。

这样做的好处是,您希望必须重新查询用户的每次点击,因为所有广告都是第一次发送,JavaScript会过滤掉不需要的广告。您还可以通过jquery的效果在show / hide中添加一些效果。

答案 2 :(得分:0)

如果我理解你的问题,你可以轻松地使用JQuery实现它。

HTML:
<a href="#" id="normal_ads">Display normal ads</a>
<a href="#" id="private_ads">Display private ads</a>
<div id="ads"></div>

JQuery:
$(document).ready(function() 
{
    $('#normal_ads').click(function() 
    {
        $('#ads').html("").load("ajax_ads.php?normal=1");
        return false;
    });

    $('#private_ads').click(function() 
    {
        $('#ads').html("").load("ajax_ads.php?private=1");
        return false;
    });
});

答案 3 :(得分:0)

只需将一个标记添加到XmlHTTP请求转到的URL字符串中吗?

换句话说,“my.server.script.php?ads = all”或“my.server.script.php?ads = private”,并在PHP脚本中检查您的请求变量,以确定要返回的内容。