Ajax使用无序列表调用来提供参数

时间:2010-11-11 14:28:59

标签: php jquery ajax

我目前正在使用JQuery Ajax来检索和显示一些数据,如下所示。

/* PHP to select data and create Unordered list */

   <?php

    echo "<ul class=\"ctyul\">";
      while ($rowC = mysql_fetch_array($result))
     {
     echo "<li class=\"ctyli\"><a href=\"#"."&" .rawurlencode($rowC['PLAN']) ."\"" .">"   . $rowC['PLAN'] .  "</a></li>";
     };
     echo "</ul>";

     ?>

/* JQuery to select the li of obove list */

       $('Div.ctydiv ul.ctyul li.ctyli').click(function(){

       urlqueryC = location.href;
       urlpartsC = urlqueryC.split('&');
       urlcounty  = urlpartsC[1]; 

       $.ajax({
       url: 'php/cpdetails.php?search-n='+urlcounty,
       success: function (data) {
               $('#Pinfo').html(data);
            }
           });

当用户点击List项时,它将$ row [Plan]附加到url,然后我使用附加的'PLAN'名称来检索带有另一个PHP脚本的数据集(cpdetails.php?search-n = urlcounty)并在div中显示数据。

这一切都有效,但需要两次点击才能显示数据,第一次是将“PLAN”名称添加到网址,第二次点击会显示数据。

我想一键完成。

如何在不使用url作为传递PLAN名称的方式的情况下,将$ row [Plan]名称输入Ajax调用。

1 个答案:

答案 0 :(得分:2)

将点击处理程序附加到链接并获取href属性:

(更好的HTML)

<ul class="ctyul">
<?php while(($rowC = mysql_fetch_array($result))): ?>
    <li class="ctyli"><a href="#<?php echo rawurlencode($rowC['PLAN']) ?>"><?php echo $rowC['PLAN'] ?></a></li>
<?php endwhile; ?>
</ul>

和JS:

$('Div.ctydiv ul.ctyul li.ctyli a').click(function(e){
    e.preventDefault();
    urlcounty  = $(this).attr('href').substr(1); 

    $.ajax({
        url: 'php/cpdetails.php?search-n='+urlcounty,
        success: function (data) {
            $('#Pinfo').html(data);
        }
    });
 });