繁体   English   中英

如何存储单击的表格单元格的变量并将其转换为另一种形式?

[英]How to store the variable of the clicked table cell and transfer it to another form?

我已经使用ajax(xmlhttp)对我的表进行过滤。 下面是我的select2.php代码,这是我从数据库中获取表的PHP代码。

    <?php
    $connect = mysqli_connect("localhost", "root", "","test1");
    $q= $_GET['q'];

    $v= $_GET['v'];



    $output = "<table border='5' id='info' align = 'center'>
                <tr>
                <th><Font SIZE=5>Name</th>
                <th><Font SIZE=5>Number</th>
                <th><Font SIZE=5>Status</th>
                </tr>";

     if($v == "" && $q == "" )
    {

        $sql = "SELECT Name, Number, Status FROM particulars";
        $result = mysqli_query($connect, $sql);
        while($row= mysqli_fetch_array($result))
        {
           $name = $row['Name'];
           $number = $row['Number'];
           $status = $row['Status'];

           $output .= "<tr height='50'> <td value='$name'  class='crmname'>$name</td>"
                   . "<td height='50'>$number</td>"
                   . "<td height='50'>$status</td>"
                   . "</tr>";   
        }
    }

    else
    {
        if($q == "")
        {
            $sql = "SELECT Name, Number, Status FROM particulars WHERE Name LIKE '%$v%'";
        }
        else
        {

            $sql = "SELECT Name, Number, Status FROM particulars where Name like '%$v%' and status = '$q'";

        }
                 and Status = '$q'"


        $result = mysqli_query($connect, $sql);
        while($row= mysqli_fetch_array($result))
        {

           $name = $row['Name'];
           $number = $row['Number'];
           $status = $row['Status'];

           $output .= "<tr height='50'> <td value='$name' class='crmname'>$name</td>"
                   . "<td height='50'>$number</td>"
                   . "<td height='50'>$status</td>"
                   . "</tr>";   
        }

    }

     $output.="</table>";
    echo $output;
    mysqli_close($connect);
    ?>

接下来是我的index.php表单,其中将显示ajax函数。

 <script>
        function crmsearch(strings)
        {
            var b = strings;    
            var c = document.getElementById("status");
            var a = c.options[c.selectedIndex].text;



            if(b ==  null || b == "")
            {
                b = "";
            }

            if (window.XMLHttpRequest) 
            {
            // code for IE7+, Firefox, Chrome, Opera, Safari
                var xmlhttp = new XMLHttpRequest();
            } 
            else 
            {
        // code for IE6, IE5
                var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
            }
            xmlhttp.onreadystatechange = function() 
            {
                if (xmlhttp.readyState == 4 && xmlhttp.status == 200) 
                {
                    document.getElementById("inputtable").innerHTML = xmlhttp.responseText;

                }
            };

            xmlhttp.open("GET","select2.php?q="+a+"&v="+b,true);
            xmlhttp.send();
        }
        </script>

这些是我用于文本框过滤器和下拉框实时搜索的html代码
客户关系管理

            <input type="text" name="search_text" id ="search_text" style="float: right" placeholder="Name" onkeyup="crmsearch(this.value)" autocomplete="off"> 

            <select name='status' id='status' onchange="crmsearch(search_text.value)">
                <option value=""></option>
                <option value="Interested">Interested</option>
                <option value="Not Interested">Not Interested</option>
            </select>
           <span  style="float: right; margin-right: 15px" class ="input-group-addon">Search</span> 
            <br>
        </div>

    </div>

目前,我所有的代码都可以正常工作,但下面的代码除外,该代码试图单击表的第一列(名称)并获取我单击的单元格的名称。 例如,如果单击“ Winson”,则将“ Winson”存储到变量中并将其发送到另一种形式。 我已经尝试了以下代码,但还是有效的。

<script>
var name;
        $(document).ready(function()
        {

        $('#info tr .crmname').click(function()
        {

            name = $(this).text();
            alert(name);
            window.location = 'CV.php?name=' + name;



        });
        });
</script>

先感谢您:)

您为每行使用相同的元素ID。 由于id应该是唯一的,因此这会引起DOM的混乱。 将您的#crmname更改为类,然后可以使用类似以下的选择器:

$('#info tr.crmname').click(function()

当您应该返回具有名称的第一个TD的文本时,您还将返回TR元素的文本。 因此,在第一个TR上放置一个类,如.name,以便您可以在函数中执行此操作:

name = $('.name', this).text();

编辑:如果您想单击TD元素,然后将crmname类放在此处,但不要像我在评论中提到的那样作为id。 这样做:

$('#info tr .crmname').click(function()

其次,您的功能是否正常工作? 您能否仅在功能的第一部分添加警报以确保其正常工作? 所以:

$('#info tr .crmname').click(function()
{
    alert('debug');
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM