2015-09-05 6 views
0

У меня есть 4 страницы: register.php, view.php, edit.php и display.php На view.php у меня есть форма, которая отображает все данные из базы данных. У меня есть окно поиска, результаты которого отображаются в display.php (он отображает только одну строку из базы данных). В отображении php у меня есть форма с кнопкой редактирования для записи. Кнопка редактирования перенаправляет меня на edit.php, где я могу изменить свои данные. Когда я сохраняю, он перенаправляет меня на view.php, но я хочу отображать php с сохраненными значениями редактируемой записи. Я пробовал, но он не работает. Вторая проблема, которую я имею здесь, заключается в том, чтобы сохранить в edit.php параметр выпадающего списка, который я выбрал в register.phpПеренаправление на другую страницу после отправки формы

Я, м новый в программировании, и я надеюсь, что кто-то поможет мне в этой проблеме. 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, When i pass ("Location: display.php? contract = '2341'"); он дает мне URL-адрес: //localhost/form/display.php? contract =% 272341% 27 И ПУСТОЙ СТРАНИЦЫ. Поэтому он добавляет 272 из ниоткуда. –

Смежные вопросы