2017-05-09 79 views
0

任何人都可以告诉我我的问题在哪里,这个页面是从编辑按钮链接的,我已经嵌入到所有条目的表格中。但是,当我输入新值时,它将当前数据输入到字段中,而不是更新?任何帮助赞赏。从编辑按钮更新表条目

PHP:

<?php 
    include_once("config.php"); 

    date_default_timezone_set('Europe/London'); 

    //getting id from url 
    $id = $_GET['id']; 

    //selecting data associated with this particular id 
    $EditQuery = "SELECT * FROM ACW WHERE UserID=$id"; 

    $results = sqlsrv_query ($conn, $EditQuery); 

    while($row = sqlsrv_fetch_array($results, SQLSRV_FETCH_ASSOC)) 
    { 
     $firstname = $row['FirstName']; 
     $lastname = $row['LastName']; 
     $location = $row['location']; 
    } 

    if(isset($_POST['update'])) 
    { 
    $id = $_POST['UserID']; 
    $firstname = $_POST['FirstName']; 
    $lastname = $_POST['LastName']; 
    $location = $_POST['location']; 

    // checking empty fields 
    if(empty($firstname) || empty($lastname) || empty($location)) { 

     if(empty($firstname)) { 
      echo "<font color='red'>First Name field is empty.</font><br/>"; 
     } 

     if(empty($lastname)) { 
      echo "<font color='red'>Last Name field is empty.</font><br/>"; 
     } 

     if(empty($location)) { 
      echo "<font color='red'>Location field is empty.</font><br/>"; 
     } 

     //link to the previous page 
     echo "<br/><a href='javascript:self.history.back();'>Go Back</a>"; 

    } 

    if (preg_match("/^[0-9-]+$/",$firstname || $lastname || $location)) { 
     echo "<font color='red'>Numbers are not valid in these fields</font><br/>"; 
    } 
    } else {  
     //updating the table 
     $UpdateQuery ="UPDATE ACW SET FirstName='$firstname', LastName='$lastname', location='$location' WHERE UserID='$id'"; 

     echo $UpdateQuery; 
     //echo "<font color='green'>Data has been updated.</font><br/>"; 

     $results = sqlsrv_query ($conn, $UpdateQuery); 
    } 
?> 

形式:

<form name="form1" method="get" action="edit.php"> 
     <table border="0"> 
      <tr> 
       <td>First Name</td> 
       <td><input type="text" name="firstname" value="<?php echo $firstname;?>"></td> 
      </tr> 
      <tr> 
       <td>Last Name</td> 
       <td><input type="text" name="lastname" value="<?php echo $lastname;?>"></td> 
      </tr> 
      <tr> 
       <td>Location</td> 
       <td><input type="text" name="location" value="<?php echo $location;?>"></td> 
      </tr> 
      <tr> 
       <td><input type="hidden" name="id" value=<?php echo $_GET['id'];?>></td> 
       <td><input type="submit" name="update" value="Update"></td> 
      </tr> 
     </table> 
</form> 
+0

不知道这是你的问题,但你有'$ _POST ['update']',但你的表单是'method ='get“' –

+0

感谢您的帮助! – rizzkiks

回答

0

我建议你做3个变化:
1.0提供的表单输入不同的变量名从数据库中收集的一个(例如而不是$ firstname,只能说$ firstname_form)

2.0您的表单有方法为GET,但您使用的是POST更新

3.0您的表单操作页面是edit.php,但事实是您通过GET收集项目ID意味着您的编辑按钮必须链接到某个edit.php? id = $ item_id因此,操作页面应该是edit.php?id = $ id

c/o您的评论:是的。正是我想象的。所以,你的表单动作替换edit.php
edit.php?id = <?php if(isset($ id)){echo $ id; }? >
您的意思是说,如果此页面上存在该ID,则将其显示为参数。

+0

非常感谢你,我会做出这些变化 – rizzkiks

+0

回声“​​Edit这是我使用的形式的链接是否看起来不错,你呢? – rizzkiks

+0

你知道他有一个隐藏的输入在他的HTML权? –

0

我没有要求更改链接按钮。它是正确的。为了证明它是正确的,回声的ID在这样

你的编辑页面,如果(isset($ _ GET [ '身份证'])){

的$ id = $ _GET [ '身份证'];

echo $ id;
exit();

}

然后,您可以发表评论或确认ID传递到编辑页面后删除回声和出口管线。

现在,您的表单上我说,行动应该是这样的
<形式行动=“edit.php ID = < PHP如果(isset($ ID)){回声的$ id;}??? > “方法=” GET”名称= “form1的” >

< /形式>

调整的变量名作为我建议前面以及从POST改变输入验证得到的。你的数据库现在应该更新。