【问题标题】:Update table according to the selection box value in php根据php中的选择框值更新表格
【发布时间】:2015-04-16 01:09:47
【问题描述】:

我在 php 中有一个页面,列出了一个人的详细信息。我需要做的是,当我选择一个选择框值时,应该根据该选择框值更新表格。

首先应该打印第一行的详细信息。当我选择批准休假/拒绝休假时,应该更新表格。

$query2 = "SELECT * FROM `leavetable` WHERE forwardedtoteacher=1";
$result2 = mysql_query($query2);
$numresults2= mysql_num_rows($result2);

    for ($i = 0; $i < $numresults2; $i++)
    {

        $row2 = mysql_fetch_array($result2);
        $username = $row2['username'];
        $sdate = $row2['fromdate'];
        $edate = $row2['enddate'];
        $session = $row2['session'];
        $reason = $row2['reason'];
        $

        $query = "SELECT * FROM `user` WHERE username='$username'";
        $result = mysql_query($query);
        $numresults = mysql_num_rows($result);
        $row = mysql_fetch_array($result);
        $usern = $row['username'];
        $fname = $row['fname'];
        $lname = $row['lname'];
        $designation = $row['designation'];
        $phonenumber = $row['phonenumber'];


        echo'<table><tr><td>First name </td><td style="padding-left:20px;">'.$fname.'</td></tr><br>';

        echo'<tr><td>Last name </td><td style="padding-left:20px;">'.$lname.'</td></tr><br>';

        echo'<tr><td>Designation</td><td style="padding-left:20px;">'.$designation.'</td></tr><br>';

        echo'<tr><td>Phonenumber </td><td style="padding-left:20px;">'.$phonenumber.'</td></tr><br>';

        echo'<tr><td>Start Date </td><td style="padding-left:20px;">'.$sdate.'</td></tr><br>';

        echo'<tr><td>End Date </td><td style="padding-left:20px;">'.$edate.'</td></tr><br>';

        echo'<tr><td>Session  </td><td style="padding-left:20px;">'.$session.'</td></tr><br>';

        echo'<tr><td>Reason </td><td style="padding-left:20px;">'.$reason.'</td></tr><br>';

        echo"</table>\n";
        ?>
        <form action = <?php echo $_SERVER['PHP_SELF']; ?> method = 'POST'>

        <?php
        echo '<select name="leavestatus">';
        echo '<option value="Approve Leave">Approve Leave</option>';
        echo '<option value="Reject Leave">Reject Leave</option>';
        echo '</select>';

        if(isset($_POST['leavestatus']))
        {
        if($_POST['leavestatus'] == 'Approve Leave')
            {

                $stmt = "UPDATE leavetable SET forwardedtohod = 1,forwardedtoteacher = 0 WHERE username = '$usern'";

                $stmt11 = mysql_query($stmt);

            }
        if($_POST['leavestatus'] == 'Reject Leave')
            {


                $stmt2 = "UPDATE leavetable SET fromdate = '',enddate ='',session = '',typeofleave = '',forwardedtoteacher=0,forwardedtohod=0 WHERE username= '$usern'";

                $stmt3 = mysql_query($stmt2); 

            }


      }

        print "<hr>";



    }

这里。我有两个表,leavetable 和 user 表。我所做的是,我从这些表中获取详细信息并显示。 Then I provided a checkbox to each row and When I select the Approve Leave corresponding code should work and when reject leave is selected the corresponding code should work.那就是我需要用选择框值更新表格。提前致谢

第一个名字:
姓氏:
名称 :
.....
.....
.....

|批准请假 |v| ------> 选择框

----------------------------------------------- ------

第一个名字:
姓氏:
名称 :
.....
.....
.....

|批准请假| ------> 选择框

【问题讨论】:

    标签: php mysql


    【解决方案1】:

    首先,使用mysqliPDO 而不是mysqlmysql 自 PHP 5.5.0 起已弃用,并将在未来删除。

    其次,我不熟悉您的表结构和数据库设计,但据我所知,您不需要两次查询,您可以使用@987654325 一次查询获取所需的所有数据@

    第三,我使用username字段作为参数发布因为我不知道您的数据库设计,如果您为每个用户都有一个ID integer type字段,最好使用它而不是username

    第四,您必须在每个表单中使用用户名的值创建一个隐藏输入,并将其与您的leavestatus 一起发布。

    您的代码需要更多的清理和性能修复,我做了一些但不是全部。

    所以您的代码将是这样的(我没有将您的mysql 更改为mysqli,因此您需要对其进行一些研究):

    <?php
    if(isset($_POST['leavestatus'])){
        if($_POST['leavestatus'] == 'Approve Leave'){
            $stmt = "UPDATE leavetable SET forwardedtohod = 1,forwardedtoteacher = 0 WHERE username = '".$_POST['hdnUsername']."'";
            mysql_query($stmt);
        }
        elseif($_POST['leavestatus'] == 'Reject Leave'){
            $stmt = "UPDATE leavetable SET fromdate = '',enddate ='',session = '',typeofleave = '',forwardedtoteacher=0,forwardedtohod=0 WHERE username= '".$_POST['hdnUsername']."'";
            mysql_query($stmt); 
        }
    }
    
    
    $query = "SELECT leavetable.*, user.fname, user.lname, user.designation, user.phonenumber";
    $query .= " FROM leavetable";
    $query .= " left join user";
    $query .= " on leavetable.username = user.username";
    $query .= " WHERE leavetable.forwardedtoteacher=1";
    
    $result = mysql_query($query);
    while($row = mysql_fetch_array($result)){
        $username = $row['username'];
        $sdate = $row['fromdate'];
        $edate = $row['enddate'];
        $session = $row['session'];
        $reason = $row['reason'];
        $fname = $row['fname'];
        $lname = $row['lname'];
        $designation = $row['designation'];
        $phonenumber = $row['phonenumber'];
    
    
        echo'<table><tr><td>First name </td><td style="padding-left:20px;">'.$fname.'</td></tr>';
        echo'<tr><td>Last name </td><td style="padding-left:20px;">'.$lname.'</td></tr>';
        echo'<tr><td>Designation</td><td style="padding-left:20px;">'.$designation.'</td></tr>';
        echo'<tr><td>Phonenumber </td><td style="padding-left:20px;">'.$phonenumber.'</td></tr>';
        echo'<tr><td>Start Date </td><td style="padding-left:20px;">'.$sdate.'</td></tr>';
        echo'<tr><td>End Date </td><td style="padding-left:20px;">'.$edate.'</td></tr>';
        echo'<tr><td>Session  </td><td style="padding-left:20px;">'.$session.'</td></tr>';
        echo'<tr><td>Reason </td><td style="padding-left:20px;">'.$reason.'</td></tr>';
        echo'</table>\n';
    
        echo '<form action ="'.$_SERVER['PHP_SELF'].'" method="POST">'
        echo '<input type="hidden" name="hdnUsername" value="'.$username.'">';
        echo '<select name="leavestatus">';
        echo '<option value="Approve Leave">Approve Leave</option>';
        echo '<option value="Reject Leave">Reject Leave</option>';
        echo '</select>';
        echo '</form>';
    
        echo "<hr>";
    }
    ?>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多