2016-09-10 3 views
1

Как обновить таблицу, когда я нажимаю кнопку EDIT NOW? или это проще, как сделать кнопку обновления, чтобы обновить таблицу? У меня нет знаний о JSP для автоматического обновления. Тем не менее, мне удается сделать событие onchange, поэтому, когда я выбираю меню, он будет обновляться при изменении. Когда я редактирую данные и отправляю их, он не обновляется. Как повторно выполнить эхо таблицы? Благодаря!Обновить предыдущую таблицу форм после отправки кнопки

enter image description here

<?php 



    $selected=''; 

    function get_options($select) 
    { 
     $conn = new mysqli('localhost', 'root', 'jared17', 'hbadb') 
     or die ('Cannot connect to db'); 

     $result = $conn->query("select * from students"); 

     $options=''; 
     while ($row = $result->fetch_assoc()) 
     { 
      $LRN = $row['LRN']; 
      $Last = $row['Last_Name']; 
      $First = $row['First_Name']; 
      if($LRN == $_GET['Students']) 
      { 
       $options.='<option value="'.$LRN.'" selected>'.$Last.', '.$First.'</option>'; 

      } 
      else 
      { 
       $options.='<option value="'.$LRN.'">'.$Last.', '.$First.'</option>'; 
      } 
     } 
     return $options; 
    } 
     if (isset($_GET['Students'])) { 
      $conn = new mysqli('localhost', 'root', 'jared17', 'hbadb') 
     or die ('Cannot connect to db'); 

     $result = $conn->query("select * from students"); 
     $lrn = $_GET['Students']; 
     $stmt = $conn->prepare("SELECT Last_Name, First_Name, Level, Q1, Q2, Q3, Q4, FINAL FROM english WHERE LRN = ?"); 
     $stmt->bind_param('i', $lrn); 
     $stmt->execute(); 
     $stmt->bind_result($last, $first, $level, $q1, $q2, $q3, $q4, $final); 
     $stmt->fetch(); 
     echo "<table><tr><th>LRN</th><th>Name</th><th>Level</th><th>Q1</th><th>Q2</th><th>Q3</th><th>Q4</th><th>Final</th></tr>"; 
     echo "<tr><td>$lrn</td><td>$last, $first</td><td>$level</td><td>$q1</td><td>$q2</td><td>$q3</td><td>$q4</td><td>$final</td></tr></table>"; 
    } 




    echo "<html>"; 
    echo "<body>"; 
    echo "<form method=GET>"; 
    echo "<select name=Students onchange=this.form.submit();>"; 

     echo get_options(); 



    echo "</select>"; 
    echo "</form>"; 

    echo "<form method=POST>"; 
    ///////////EDIT DATA 
    echo "Edit Data: "; 
    echo "<select name = 'Edit'>"; 

    echo '<option value=Q1>Q1</option>'; 
    echo '<option value=Q2>Q2</option>'; 
    echo '<option value=Q3>Q3</option>'; 
    echo '<option value=Q4>Q4</option>'; 
    echo '<option value=FINAL>FINAL</option>'; 
    echo '<input type="number" max="100" name="editdata" required>'; 
    echo "</select>"; 
    echo "<input type='submit' name='submit2' value='Edit Now'>"; 


    if (isset($_POST['Edit'])) { 
     $conn2 = new mysqli('localhost', 'root', 'jared17', 'hbadb') 
     or die ('Cannot connect to db'); 
     $upd = $_POST['Edit']; 
     $txt = $_POST['editdata']; 
     $now = "UPDATE english SET $upd='$txt' WHERE LRN='$lrn'"; 
     $res = $conn2->query($now); 
     if (!$conn2->error) { 
      echo "Errormessage: $conn->error"; 
    } 
     echo $now; 



    } 



    echo "</form>"; 





    echo "</body>"; 
    echo "</html>"; 
    ?> 
+0

Попробуйте использовать ajax на свой код – Melchizedek

ответ

0

Я хотел бы использовать 2 страницы view.php и edit.php. В представлении будут отображаться данные со ссылкой для редактирования. Когда вы нажмете «Редактировать», откроется файл edit.php, чтобы загрузить форму для редактирования данных и сохранить ее в db. Затем выполните команду

header("Location: view.php"); 

перезагрузить view.php и отображать новые данные

Я загрузил скрипты, которые я использую в качестве основы для баз данных, так что вы можете увидеть, если это то, что вы хотите - чувство свободно изменять любые данные, это просто тестовая база данных. Если вы хотите больше кода просто спросите

<a href="http://www.cambodia.me.uk/php/view.php">www.cambodia.me.uk/php/view.php</a> 

Edited включить скрипты в соответствии с просьбой - жаль, что это старый код и MySQL не Mysqli

Connect скрипт

<?php 
/* 
CONNECT-DB.PHP 
Allows PHP to connect to your database 
*/ 
// Database Variables (edit with your own server information) 
$server = 'server'; 
$user = 'user'; 
$pass = 'pass'; 
$db = 'database'; 
// Connect to Database 
$connection = mysql_connect($server, $user, $pass) 
or die ("Could not connect to server ... \n" . mysql_error()); 
mysql_select_db($db) 
or die ("Could not connect to database ... \n" . mysql_error()); 
?> 

Просмотр сценария

<?php  
include('remote-connect.php'); 
$result = mysql_query("SELECT * FROM stats") 
or die(mysql_error()); 
echo "<p><b>View All</b> | <a href='view-paginated.php?page=1'>View Paginated</a></p>"; 
echo "<table border='1' cellpadding='10'>"; 
echo "<tr> <th>date</th> <th>Home Team</th> <th></th><th></th><th>Away Team</th> <th></th> </tr>"; 
while($row = mysql_fetch_array($result)) { 
echo "<tr>"; 
echo '<td>' . $row['date'] . '</td>'; 
echo '<td>' . $row['hometeam'] . '</td>'; 
echo '<td>' . $row['fthg'] . '</td>'; 
echo '<td>' . $row['ftag'] . '</td>'; 
echo '<td>' . $row['awayteam'] . '</td>'; 
echo '<td><a href="edit.php?id=' . $row['id'] . '">Edit</a></td>'; 
//echo '<td><a href="delete.php?id=' . $row['id'] . '">Delete</a></td>'; 
echo "</tr>"; 
} 
echo "</table>"; 
?> 
<p><a href="new.php">Add a new record</a></p> 
</body> 
</html> 

Редактировать код

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>Untitled Document</title> 
</head> 
<body> 
<?php 
function renderForm($id, $hometeam, $awayteam, $error) 
{ 
if ($error != '') 
{ 
echo '<div style="padding:4px; border:1px solid red; color:red;">'.$error.'</div>'; 
} 
?> 
<form action="" method="post"> 
<input type="hidden" name="id" value="<?php echo $id; ?>"/> 
<div> 
<p><strong>ID:</strong> <?php echo $id; ?></p> 
<strong>First Name: *</strong> <input type="text" name="hometeam" value="<?php echo $hometeam; ?>"/><br/> 
<strong>Last Name: *</strong> <input type="text" name="awayteam" value="<?php echo $awayteam; ?>"/><br/> 
<p>* Required</p> 
<input type="submit" name="submit" value="Submit"> 
</div> 
</form> 
</body> 
</html> 
<?php 
} 
include('remote-connect.php'); 
if (isset($_POST['submit'])) 
{ 
if (is_numeric($_POST['id'])) 
{ 
$id = $_POST['id']; 
$hometeam = mysql_real_escape_string(htmlspecialchars($_POST['hometeam'])); 
$awayteam = mysql_real_escape_string(htmlspecialchars($_POST['awayteam'])); 
if ($hometeam == '' || $awayteam == '') 
{ 
$error = 'ERROR: Please complete all mandatory fields!'; 
renderForm($id, $hometeam, $awayteam, $error); 
} 
else 
{ 
mysql_query("UPDATE stats SET hometeam='$hometeam', awayteam='$awayteam' WHERE id='$id'") 
or die(mysql_error()); 
// Go back to view page and redisplay the edited data 
header("Location: view.php"); 
} 
} 
else 
{ 
echo 'Error!'; 
} 
} 
else 
{ 
if (isset($_GET['id']) && is_numeric($_GET['id']) && $_GET['id'] > 0) 
{ 
$id = $_GET['id']; 
$result = mysql_query("SELECT * FROM stats WHERE id=$id") 
or die(mysql_error()); 
$row = mysql_fetch_array($result); 
if($row) 
{ 
$hometeam = $row['hometeam']; 
$awayteam = $row['awayteam']; 
renderForm($id, $hometeam, $awayteam, ''); 
} 
else 
{ 
echo "No results!"; 
} 
} 
else 
{ 
echo 'Error!'; 
} 
} 
?> 
</body> 
</html> 
+0

Hakkikonu и я оба дали вам ответ. Просто обновите данные с помощью нового SQL-запроса и повторно отобразите форму. В моем решении я использую 2 сценария, один отображает данные с возможностью редактирования, второй отображает форму, чтобы вы могли редактировать данные, затем выдает заголовок («Location: view.php»); командует и повторно отображает все новые данные с возможностью редактирования - выполненная работа – kerry

+0

Рассматривая свой код при первом запуске скрипта, он отображает текущие данные с формой для редактирования. Все, что вам нужно сделать, - это когда редактирование и обновление выполняется, включают строку header («Местоположение: YourFileName.php»); , и он снова выполнит извлечение и отображение новых данных. – kerry

+0

Привет, Керри, могу я видеть ваши коды, если можно? – jaredpianist

0

Это так просто. Если вы выберете значения своей таблицы после операции редактирования или удаления, sql принесет свежие данные.

+0

не могли бы вы привести мне пример? благодаря – jaredpianist

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