2015-09-05 155 views
0

我有4頁:register.php,view.php,edit.php和display.php On view.php我有一個窗體顯示來自數據庫的所有數據。 我有一個搜索框,其結果顯示在display.php中(它只顯示一行數據庫)。 在顯示PHP我有一個窗體與編輯按鈕的條目。編輯按鈕將我重定向到edit.php,在那裏我可以更改我的數據。當我保存時,它將重定向到view.php,但我希望顯示已編輯條目的已保存值。 我嘗試過,但它desnt工作。 我在這裏的第二個問題是保留在edit.php中的下拉選項,我選擇了在register.php在提交表單後在另一個頁面上重定向

我; m在編程新,我希望有人會幫助我在這個問題。 THX尋求幫助。

我的網頁:

Display.php的

<?php 
 
include('connect-db.php'); 
 

 
$client = $_POST['client']; 
 
$contract = $_POST['contract']; 
 
if(
 
$contract = $_POST['contract']) 
 
{$query = "select * from users where contract = '$contract'"; } 
 
else{ 
 
$query= "select * from users where client = '$client'"; 
 
} 
 
$result = mysql_query($query); 
 
echo "<table>"; 
 
\t 
 
\t \t while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) 
 
{ 
 
\t // echo out the contents of each row into a table 
 
\t \t echo '<label>Contract</label><input readonly="true" value=' . $row['contract'] . '>'; 
 
\t \t echo '<label>Client</label><input readonly="true" type="text" value="' . $row['client'] . '">'; 
 
\t \t echo '<label>Step</label><input type="text" readonly="true" value=' . $row['Step'] . '>'; 
 
\t \t echo '<br><a href="edit.php?contract=' . $row['contract'] . '"><input type="submit"value="Change"></a>'; 
 
\t \t echo '<br>'; \t \t 
 
\t \t echo "</table>"; 
 
\t } 
 

 
?>

EDIT.PHP

<?php 
 

 
function renderForm($contract, $client, $step 
 
{ 
 
?> 
 
<!DOCTYPE html> 
 
<body> 
 
<form id="base" name="base" method="post" action=""> 
 
\t <input data-validate="number" value="<?php echo $contract; ?>" readonly="true" id="contract"> 
 
    <input data-validate="text" value="<?php echo $client; ?>" id="client"> 
 
\t \t \t \t \t <select name="step"> 
 
\t \t \t \t \t  <option value="option1">Option1</option> 
 
\t \t \t \t \t \t <option value="option2">Option2</option> 
 
\t \t \t \t  </select> 
 
\t <input type="submit" value="Change"> 
 
</form> 
 
</body> 
 
</html> 
 
\t \t <?php 
 
} 
 
include('connect-db.php'); 
 
    if (isset($_POST['submit'])) 
 
{ 
 
if (is_numeric($_POST['contract'])) 
 
{ 
 
$contract = mysql_real_escape_string(htmlspecialchars($_POST['contract'])); 
 
$client = mysql_real_escape_string(htmlspecialchars($_POST['client'])); 
 
    $step = mysql_real_escape_string(htmlspecialchars($_POST['step'])); 
 
if ($contract == '' || $client == '') 
 
{ 
 
$error = 'ERROR: Please fill in all required fields!'; 
 
renderForm($contract, $client, $step, $error); 
 
} 
 
else 
 
{ 
 
mysql_query("UPDATE users SET 
 
    contract='$contract', client='$client', step='$step', WHERE contract='$contract'") 
 
or die(mysql_error()); 
 
    header("Location: view.php"); 
 
} 
 
} 
 
else 
 
{ 
 
echo 'Error!'; 
 
} 
 
} 
 
else 
 
{ 
 
    
 
if (isset($_GET['contract']) && is_numeric($_GET['contract']) && $_GET['contract'] > 0) 
 
{ 
 
$contract = $_GET['contract']; 
 
$result = mysql_query("SELECT * FROM users WHERE contract=$contract") 
 
or die(mysql_error()); 
 
$row = mysql_fetch_array($result); 
 
    if($row) 
 
{ 
 
$contract = $row['contract']; 
 
$client = $row['client']; 
 
$step = $row['step']; 
 
renderForm($contract, $client, $step, ''); 
 
} 
 
else 
 
{ 
 
echo "No results!"; 
 
} 
 
} 
 
else 
 
{ 
 
echo 'Error!'; 
 
} 
 
} 
 
?>

VIEW.PHP

<!DOCTYPE html> 
 
<html> 
 
     <?php 
 
\t include('connect-db.php'); 
 
\t \t \t $sql="SELECT * FROM users"; 
 
\t \t \t $result =mysql_query($sql); 
 
\t \t 
 
\t \t \t { 
 
\t \t \t \t ?> 
 

 
<table> 
 
\t <thead> 
 
\t \t \t <tr> 
 
\t \t \t <th span style="font-weight: normal;">Contrat</th> 
 
\t \t \t <th span style="font-weight: normal;">Client</th> 
 
\t \t \t <th span style="font-weight: normal;">Step</th> 
 
\t \t \t </tr> 
 
\t </thead> 
 
\t \t \t 
 
\t \t \t <?php 
 
\t \t \t } 
 
\t \t while ($data=mysql_fetch_assoc($result)){ 
 
?> \t 
 
\t <tbody> 
 
      <tr> 
 
\t \t \t <td><?php echo $data['contract'] ?></td> 
 
\t \t \t <td><?php echo $data['client'] ?></td> 
 
\t \t \t <td><?php echo $data['step'] ?></td> 
 
\t \t \t <td><a href="edit.php?contract=<?php echo $data['contract'] ?>"><input type="button" value="Change"></a></td> 
 
\t \t \t </tr> <?php } ?> 
 
    </tbody> 
 
    
 
</table> 
 

 
</body> 
 
</html> \t

REGISTER.PHP

<!DOCTYPE html> 
 
<html> 
 
<form id="base" method="post" action="insert.php"> 
 
\t \t \t <br> 
 
\t \t \t <br> 
 
\t \t \t \t <input data-validate="number" id="contract" name="contract"> 
 
       <input data-validate="text" id="client" name="client"> 
 
\t \t \t \t <select name="step"> 
 
\t \t \t \t \t  <option value="option1">OPTION1</option> 
 
\t \t \t \t \t \t <option value="option2">OPTION2</option> 
 
\t \t \t \t  </select> 
 
\t \t \t <button data-validate="submit">Register</button> 
 
    </form> 
 

 
    </body> 
 
</html>

回答

1
use this instead of your edit.php  

<?php 

    function renderForm($contract, $client, $step 
    { 
    ?> 
    <!DOCTYPE html> 
    <body> 
    <form id="base" name="base" method="post" action=""> 
     <input data-validate="number" value="<?php echo $contract; ?>" readonly="true" id="contract"> 
     <input data-validate="text" value="<?php echo $client; ?>" id="client"> 
          <select name="step"> 
          <option value="option1">Option1</option> 
          <option value="option2">Option2</option> 
          </select> 
     <input type="submit" value="Change"> 
    </form> 
    </body> 
    </html> 
      <?php 
    } 
    include('connect-db.php'); 
     if (isset($_POST['submit'])) 
    { 
    if (is_numeric($_POST['contract'])) 
    { 
    $contract = mysql_real_escape_string(htmlspecialchars($_POST['contract'])); 
    $client = mysql_real_escape_string(htmlspecialchars($_POST['client'])); 
     $step = mysql_real_escape_string(htmlspecialchars($_POST['step'])); 
    if ($contract == '' || $client == '') 
    { 
    $error = 'ERROR: Please fill in all required fields!'; 
    renderForm($contract, $client, $step, $error); 
    } 
    else 
    { 
    mysql_query("UPDATE users SET 
     contract='$contract', client='$client', step='$step', WHERE contract='$contract'") 
    or die(mysql_error()); 
     header("Location:display.php"); 
    } 
    } 
    else 
    { 
    echo 'Error!'; 
    } 
    } 
    else 
    { 

    if (isset($_GET['contract']) && is_numeric($_GET['contract']) && $_GET['contract'] > 0) 
    { 
    $contract = $_GET['contract']; 
    $result = mysql_query("SELECT * FROM users WHERE contract=$contract") 
    or die(mysql_error()); 
    $row = mysql_fetch_array($result); 
     if($row) 
    { 
    $contract = $row['baza_contract']; 
    $client = $row['baza_client']; 
    $step = $row['step']; 
    renderForm($contract, $client, $step, ''); 
    } 
    else 
    { 
    echo "No results!"; 
    } 
    } 
    else 
    { 
    echo 'Error!'; 
    } 
    } 
    ?> 
+0

它不工作,因爲我在迪通splay.php關於它將顯示的條目的一些信息,但我不知道怎麼做。 –

+0

如果你想要的話,你可以通過url這樣的標題發送值(「Location:display.php?id ='yourid''」) ; –

+0

我試圖做到這一點,但一個小問題,我不知道爲什麼。我有一個cotract - 2341,當我通過(「Location:display.php?contract ='2341'」);它給了我一個URL-http://localhost/form/display.php?contract =%272341%27和EMPTY PAGE。所以它從無處添加了272。 –

相關問題