2016-09-10 11 views
1

[今すぐ編集]ボタンをクリックしたときにテーブルを更新するにはどうすればよいですか?またはこれは簡単です、どのように私はテーブルをリフレッシュするためのリフレッシュボタンを作るのですか?私は、自動リフレッシュの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が開き、データを編集してdbに保存するためのフォームがロードされます。これはあなたが望むものであるならば、私はあなたが見ることができるように、データベースの基礎として使用するスクリプトをアップロードした

新しいデータをview.phpをリロードして表示するコマンド

header("Location: view.php"); 

を発行 - 感触を任意のデータを自由に修正することができ、それは単なるテストデータベースです。あなたはより多くのコードをしたい場合は、単に編集した要求に応じてスクリプトを含むように

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

を尋ねる - 申し訳ありません、古いコードとmysqlのビュースクリプト

<?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> 

接続スクリプト

<?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()); 
?> 

をmysqliのではありません

編集スクリプト

<!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

八木と私はどちらも答えました。新しいSQLクエリでデータを更新し、フォームを再表示します。私のソリューションでは2つのスクリプトを使用し、1つは編集オプションでデータを表示し、2つ目はフォームを表示してデータを編集できるようにします。 header( "Location:view.php"); コマンドを実行し、新しいデータをすべて編集して再表示します - ジョブは完了しました – kerry

+0

スクリプトを最初に実行すると、編集するフォームとともに現在のデータが表示されます。あなたがする必要があるのは、編集と更新が完了したときだけです。 ヘッダー( "Location:YourFileName.php"); 新しいデータの検索と表示を再実行します – kerry

+0

こんにちはKerry、あなたのコードが表示されますか? – jaredpianist

0

これは簡単です。編集操作または削除操作後にテーブルの値をフェッチすると、sqlは新しいデータを返します。

+0

あなたは私の例を与えてください可能性がしたいですか?ありがとう – jaredpianist

関連する問題