如何存储单击的表格单元格的变量并将其传输到另一个表单?

时间:2016-07-19 17:00:15

标签: php jquery mysql ajax

我使用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代码                  
            CRM             

            <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>

提前谢谢你:)

1 个答案:

答案 0 :(得分:0)

您为每一行使用相同的元素ID。这会导致混淆DOM,因为id应该是唯一的。将#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');
});