当点击li项目时,如何通过AJAX传递li标签ID?

3
我想在单击li标签的值时传递id值以显示城市功能,任何相关方法都被接受。
<script type = "text/javascript" >
  function showCity(str) {
    if (str == "") {
      document.getElementById("city").innerHTML = "";
      return;
    } else {
      if (window.XMLHttpRequest) {
        // code for IE7+, Firefox, Chrome, Opera, Safari
        xmlhttp = new XMLHttpRequest();
      } else {
        // code for IE6, IE5
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
      }
      xmlhttp.onreadystatechange = function() {
        if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
          document.getElementById("city").innerHTML = xmlhttp.responseText;
        }
      }

      xmlhttp.open("GET", "city.php?q=" + str, true);
      xmlhttp.send();

    }
  } 
</script>


<div id="menu">
  <ol id="test">

    <?php $stat=m ysql_query( "select * from `tms_state`"); while (($st=m ysql_fetch_array($stat))) { ?>

    <li onclick="showCity('this.value')">
      <?php echo "<option value='" . $st[ 'id'] . "'>" . $st[ 'name'] . "</option>";?>
    </li>

    <?php } ?>

  </ol>

</div>

我希望在单击li标签值时,将id值传递给show city函数。


1
你到底在寻找什么?请告诉我。我的理解是,一旦单击<li>标签,您需要<li>文本? - Vinod Patidar
1
我正在使用来自数据库的li项值,我希望当我单击该项时,它的id值应该出现在showcity(this.value)中,以便可以分配给ajax参数str。目前它将this.value作为字符串而不是li项标记值id。 - Prats
不,我想要在点击时将ID值传递给showcity()函数。 - Prats
请在Firebug中检查是否正在进行AJAX调用。我认为这个函数<li onclick="showCity('this.value')">不会起作用,因为这里的li没有value属性。 - Bhadra
谢谢Bhadra,它像魔法一样运行。谢谢你。它解决了我的问题。 - Prats
显示剩余2条评论
2个回答

0
<div id="menu">
    <ol id="test">

    <?php 
       $stat=m ysql_query( "select * from `tms_state`");
       while (($st=m ysql_fetch_array($stat))) { ?>

      <li onclick="showCity('<?php echo $st[ 'id'] ?>')">
          <?php echo "$st[ 'id']";?>
       </li>

    <?php } ?>

     </ol>

</div>

0

你可以使用jQuery更轻松地完成这个任务 -

$(document).ready(function(){
    $('#test li').click(function () {
        var str = $(this).val();

        $.ajax(
            {
                url: "city.php?q=" + str,
                success: function (result) {
                    $("#city").html(result);
                }
            });
      });
 });

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接