Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 将数据库表id放在HTML表上的正确方法_Php_Html - Fatal编程技术网

Php 将数据库表id放在HTML表上的正确方法

Php 将数据库表id放在HTML表上的正确方法,php,html,Php,Html,我需要在我的HTML表上获取表id。目前,我在HTML表上显示了其他属性,但我没有把索引或id放在哪里?我应该把它贴在“td”标签上并隐藏起来吗 这是到目前为止我的代码 <?php mysql_connect("localhost", "xx", "xxx"); mysql_select_db('db_dev'); $query3 = "SELECT * FROM project_entry"; $result3 = mysql_query($query3); ?>

我需要在我的HTML表上获取表id。目前,我在HTML表上显示了其他属性,但我没有把索引或id放在哪里?我应该把它贴在“td”标签上并隐藏起来吗

这是到目前为止我的代码

<?php
 mysql_connect("localhost", "xx", "xxx");
 mysql_select_db('db_dev');

 $query3 = "SELECT * FROM project_entry";
 $result3 = mysql_query($query3);

  ?>


<table id="tableID">
                <tr class="data-head">
                    <td>Client Name</td>
                    <td>Phase</td>
                    <td>Payment 1</td>
                    <td>Payment 2</td>
                    <td>Payment 3</td>
                </tr>
            <?php   
                while ($row3 = mysql_fetch_row($result3, MYSQL_BOTH)) {
                  $id = $row3[0]; //id
                  $companyname = $row3[1];
                  $client = $row3[2];
                  $package = $row3[3];
                  $payment1 = $row3[4];
                  $payment2 = $row3[5];
                  $payment3 = $row3[6];

                  echo '<tr>';
                  echo '<td><b>'.$client.'</b></td>';
                  echo '<td>
                        <select class="phase" onchange="trackPhases(this.value)">
                            <option value="Design">Design</option>
                            <option value="Build-Out">Build-Out</option>
                            <option value="Launch">Launch</option>
                        </select>
                        </td>';
                  echo '<td><span class="price"><b>$' .$payment1. '</b></span>
                        <select onchange="updatePayment1_Status(this.value)">
                            <option value="Owed">Owed</option>
                            <option value="Billed">Billed</option>
                            <option value="Payed">Payed</option>
                        </select></td>';
                  echo '<td><span class="price" ><b>$' .$payment2. '</b></span>
                        <select onchange="updatePayment2_Status(this.value)">
                            <option value="Owed">Owed</option>
                            <option value="Billed">Billed</option>
                            <option value="Payed">Payed</option>
                        </select></td>';
                  echo '<td><span class="price"><b>$' .$payment3. '</b></span>
                        <select onchange="updatePayment3_Status(this.value)">
                            <option value="Owed">Owed</option>
                            <option value="Billed">Billed</option>
                            <option value="Payed">Payed</option>
                        </select></td>';
                  echo '</tr>';
                }
            ?>  
            </table>

客户名称
阶段
付款1
付款2
付款3
$id=$row3[0];是表的id。我可以把它放在哪里?我是php开发新手。请帮帮我。还有,当单击每个表行时,我如何访问它

下面是示例输出


我需要这样做,因为我正在使用AJAX进行数据更新。

您可以使用
隐藏字段
或使用get方法进行更新,但我看不到您的表单或按钮,此代码将添加一个包含id值的隐藏字段:

   <?php   

         echo '<tr>';
         echo '<td><b>'.$id.'</b></td>';// HERE
         echo '<td><b>'.$client.'</b>';
         echo "<input type='hidden' name='id' value='$id'/></td>";//this line

   ?>

您需要将此id放入tr,因为它是行

<table id="tableID">
    <tr class="data-head">
        <td>Client Name</td>
        <td>Phase</td>
        <td>Payment 1</td>
        <td>Payment 2</td>
        <td>Payment 3</td>
    </tr>
<?php 

    while ($row3 = mysql_fetch_row($result3, MYSQL_BOTH)) {
        $id = $row3[0]; //id
        $companyname = $row3[1];
        $client = $row3[2];
        $package = $row3[3];
        $payment1 = $row3[4];
        $payment2 = $row3[5];
        $payment3 = $row3[6];

        echo '<tr id='.$id.'>';

        ----------

        -----------

        echo '</tr>';
    }
?> 

客户名称
阶段
付款1
付款2
付款3
点击这一行,你会得到这样的id

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js" 
type="text/javascript"></script>

<script>
$(function() {
    $("#tableID tr").click(function(){
        var row_id = $(this).attr("id");
        alert(row_id);  
    });
});
</script>

$(函数(){
$(“#tableID tr”)。单击(函数(){
var row_id=$(this.attr(“id”);
警报(行标识);
});
});

这取决于很多事情。是否要隐藏ID使其不可见?如果是这样,那么就不要将其显示为当前代码

如果您只需要ID来更新行,那么可以通过各种方式来完成

1) 使用
onchange
方法传递ID,假设这是需要更新的值之一。因此,您的javascript方法类似于
onchange=trackPhases(this.value,'.$id.)
。这样,您还将拥有正在修改的行的id

2) 如果在单击行时需要知道表ID,则需要使用类似的技术。您必须在
TR
TD
元素上添加
onclick
事件,并在方法参数中传递ID:


希望这有帮助

如果我将这样做:echo'.$id'';我仍然可以访问id?是的,您可以使用javascript,但我认为最好的解决方案是隐藏字段