将信息从表格拉到模态进行编辑

时间:2013-06-08 07:05:56

标签: php javascript

好的我有一个表来设置显示从数据库中提取的信息。

在本表的最后,我有一个更新按钮。我正在使用引导程序,当您单击此按钮时,您打开一个带有表单的模式,我希望将某行中的值传递到表单中,以便用户可以编辑信息。

使用以下代码生成表:

<?php
                $con=mysqli_connect("50.63.106.181","TheGreenPandaWeb","MacBook1!","TheGreenPandaWeb");
                // Check connection
                if (mysqli_connect_errno())
                  {
                  echo "Failed to connect to MySQL: " . mysqli_connect_error();
                  }

                $query = "SELECT * FROM affiliate_tasks WHERE username = '$_SESSION[username]'";

                if( isset($_POST['sort-selection']) && $_POST['sort-selection'] != 'all' ) 
                {
                    $query .= " AND status = '". $_POST['sort-selection']."';" ;
                }

                $result = mysqli_query($con, $query);

                echo "<table class='table table-message table-hover'>
                <tr class='heading'>
                <td class='cell-title'>Tasks</td> 
                <td class='cell-status hidden-phone hidden-tablet'>Status</td> 
                <td class='cell-time align-right'>Due Date</td>
                <td class='check-box' width='10px'>&nbsp;</td>
                <td class='check-box' width='10px'>&nbsp;</td>
                </tr>";

                while($row = mysqli_fetch_array($result))
                  {
                  echo "<tr class='task " . ($row['resolved'] == 1 ? 'resolved' : '') . "' id='task-$row[task_id]'>";
                  echo "<td class='cell-ttle'>" . $row['task_name'] . "</td>";
                  echo "<td class='cell-status hidden-phone hidden-tablet " . ($row['status'] == Done ? 'text-success' : '') ." " . ($row['status'] == Overdue ? 'text-warning' : '') ."'>"  . $row['status'] . "</td>";
                  echo "<td class='cell-time align-right'>" . $row['due_date'] . "</td>";
                  echo "<td class='check-box' width='10px'>" . "<a class='icon-arrow-up' href='#updateTaskModal' role='button' data-toggle='modal'></a>" . "</td>";
                  echo "<td class='check-box' width='10px'>" . "<a class='icon-remove' href='#deleteTaskModal' role='button' data-toggle='modal'></a>" . "</td>";
                  echo "</tr>";
                  }
                echo "</table>";

                mysqli_close($con);
            ?>

,表格如下:

<form class="form-horizontal" name="new_task" action="scripts/form_scripts/new_task.php" method="post"> 
            <div class="control-group">
                <div class="controls">
                    <input type="text" name="username" id="username" class="hide" value="<?php session_start(); echo $_SESSION[username]; ?>">
                </div>
            </div>
            <div class="control-group">
                <label class="control-label" for="task_name">Task Name</label>
                <div class="controls">
                    <input type="text" name="task_name" id="task_name" placeholder="Something with description.">
                </div>
            </div>
            <div class="control-group">
                <label class="control-label" for="status">Task Status</label>
                <div class="controls">
                    <select id="status" name="status">
                        <option value="Pending">Pending</option>
                        <option value="In Progress">In Progress</option>
                        <option value="Done">Done</option>
                    </select>
                </div>
            </div>
            <div class="control-group">
                <label class="control-label" for="due_date">Due Date</label>
                <div class="controls">
                    <input type="date" name="due_date" id="due_date" placeholder="mm/dd/yyyy">
                </div>
            </div>

我想你将需要javascript,但我不知道从哪里开始。

2 个答案:

答案 0 :(得分:2)

我就是这样做的.... 为a标记提供一个“更新”类,并在标记中填充一些数据属性,如下所示。

echo "<a class='icon-arrow-up update' href='#updateTaskModal' data-status='".$row['status']."'  data-name='".$row['task_name']."' data-date='".$row['due_date']."' role='button' data-toggle='modal'></a>";

然后你的Jquery会如下所示..

$(document).ready(function(){

 $('a.update').click(function(){
   var name = $(this).data('name');
   var date = $(this).data('date');
   var status = $(this).data('status');    

   $('#task_name').val(name);
   $('#status').val(status);
   $('#due_date').val(date);
    });

 });

理想情况下,你会将这些代码集成到模态回调中......虽然我不熟悉twitter引导程序,所以我会让你想出那部分

PS完全未经测试的代码,只是在这里给你一个想法....我相信你可以从这里弄明白。 :)

答案 1 :(得分:0)

在这里你可以使用greybox或fancybox,你可以在url上传递你的值。然后,您将能够在被调用页面中检索这些值。