0

作成、読み取り、更新、および削除のためのコードを提供するこのサイトを見つけました。チェックボックス、ラジオボタン、ドロップダウンの追加方法がわかりません

http://www.killersites.com/community/index.php?/topic/1969-basic-php-system-vieweditdeleteadd-records/

ページネーションにはまったく関心がありません。私の主な関心事は、PHP を使用して、2 つのドロップダウン、はい/いいえのラジオ ボタン、および 3 つのチェックボックスのコレクションを配置できるようにすることです。

選択肢を編集しようとしたときに値が保持されなかったため、私の試みは役に立ちませんでした。含まれているのは、pets、editpets、view の 3 つのファイルです (データベースなどのファイル名を変更しました)。

 <?php
     function renderForm($first, $last, $pets, $size, $type, $years, $error)
     {
     ?>
     <!DOCTYPE html>
     <html>
     <head>
     <title>New Customer</title>
     </head>
     <body>

     <?php
     // display possible errors
     if ($error != '')
     {
     echo '<div style="padding:4px; border:1px solid red; color:red;">'.$error.'</div>';
     }
     ?>

     <form action="" method="post">
     <div>
     <strong>First Name:</strong> <input type="text" name="firstname" value="<?php echo  
     $first; ?>" /> 
     <strong>Last Name:</strong> <input align="center" type="text" name="lastname" value="<
    ?php echo $last; ?>" /><br/>

     <p><strong>No. Pets </strong>
     <select name="pets">
      <option value="1">1</option>
      <option value="2">2</option>
      <option value="3">3</option> 
      <option value="4">4</option> 
     </select>
     </p>
     <br/>


     <strong>Size? </strong>
     <br/>
      Big<input type="radio" value="Yes"  name="size" checked><?php echo $size; ?><br />
      Small<input type="radio" value="No" name="size"<?php echo $size; ?><br />
      <br />


<p><strong>Type</strong><br/>
    <input name="type[]" type="checkbox" id="type[]"/>
    Cats
    <input name="type[]" type="checkbox" id="type[]"/>
    Dogs
    <input name="type[]" type="checkbox" id="type[]"/>
    Others
</p>
<br/>
 <strong>Years? </strong>
 <select name="year">
  <option value="Five or Less">Five or More</option>
  <option value="Six or More">Six or More</option>
 </select><br/>

 <input style="color:purple;" type="submit" name="submit" value="Create My Order :-)">
 </div>
 </form>

 <center><a href="view.php">Click Here for Orders</a></center>
 </body>
 </html>

 <?php
 }




 // connect to the database
 include('connect-db.php');

 // check if my form submits and, upon triumph, process the form and save it to the database
 if (isset($_POST['submit']))
 {
 // get form data, check its validity
 $firstname = mysql_real_escape_string(htmlspecialchars($_POST['firstname']));
 $lastname = mysql_real_escape_string(htmlspecialchars($_POST['lastname']));
 $pets = $_POST['pets'];
 $size = mysql_real_escape_string(htmlspecialchars($_POST['size']));
 $type = serialize(mysql_real_escape_string(implode(',', $_POST['type'])));
 $years = mysql_real_escape_string(htmlspecialchars($_POST['years']));

 // check to make sure everything is filled!
 if ($firstname == '' || $lastname == '' || $pets == '' || $size == '' || $type == '' || $years == '')
 {
 // generate error message
 $error = 'ERROR: Please fill in all required fields!';

 // if either field is blank, show the form again
 renderForm($firstname, $lastname, $pets, $size, $type, $years, $error);
 }
 else
 {
 // save the data to the database
 mysql_query("INSERT customers SET firstname='$firstname', lastname='$lastname', pets='$pets', size='$size', type='$type', years='$years'")
 or die(mysql_error());

 // once saved, redirect to cheview page
 header("Location: view.php");
 }
 }
 else
 // if the form is not submitted, show my form again.
 {
 renderForm('','','','','','','');
 }
?>


    <?php

$types = array("Cats", "Dogs", "Others");

 function renderForm($id, $firstname, $lastname, $pets, $size, $type, $years, $error)
 {
 ?>

 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
 <html>
 <head>
 <title>Edit Record</title>
 </head>
 <body>
 <?php
 // if there are any errors, display them
 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="firstname" value="<?php echo $firstname; ?>" /><br/>
 <strong>Last Name: </strong> <input type="text" name="lastname" value="<?php echo $lastname; ?>" /><br/>

 <p><strong>No. Pets </strong>
 <select name="pets">
  <option value="1">1</option>
  <option value="2">2</option>
  <option value="3">3</option> 
  <option value="4">4</option> 
 </select>
 </p>

  <strong>Size? </strong>
 <br/>
  Big<input type="radio" value="Yes"  name="size" checked><?php echo $size; ?><br />
  Small<input type="radio" value="No" name="size"<?php echo $size; ?><br />
  <br />

  <br />
  <br />
<p><strong>Type</strong><br/>
    <input name="type[]" type="checkbox" id="type[]"/>
    Cats
    <input name="type[]" type="checkbox" id="type[]"/>
    Dogs
    <input name="type[]" type="checkbox" id="type[]"/>
    Others
</p>

<br/>
 <strong>Years? </strong>
 <select name="year">
  <option value="Five or Less">Five or More</option>
  <option value="Six or More">Six or More</option>
 </select><br/>
<br /><br />
 <input type="submit" name="submit" value="Resubmit My Order :-)">
 </div>
 </form>
 </body>
 </html>
 <?php
 }


 // connect to the database
 include('connect-db.php');

 // check if the form has been submitted. If it has, process the form and save it to the database
 if (isset($_POST['submit']))
 {
 // check for id being an integer
 if (is_numeric($_POST['id']))
 {
 // get form data, making sure it is valid
 $id = $_POST['id'];
 $firstname = mysql_real_escape_string(htmlspecialchars($_POST['firstname']));
 $lastname = mysql_real_escape_string(htmlspecialchars($_POST['lastname']));
 $pets = $_POST['pets'];
 $size = mysql_real_escape_string(htmlspecialchars($_POST['size']));
 $type = serialize(mysql_real_escape_string(implode(',', $_POST['type'])));
 $years = mysql_real_escape_string(htmlspecialchars($_POST['years']));



 // check that firstname/lastname fields are both filled in
 if ($firstname == '' || $lastname == '' || $pets == '' || $size == '' || $type == '' || $years == '')
 {
 // generate error message
 $error = 'ERROR: Please fill in all required fields!';

 //error, display form
 renderForm($id, $firstname, $lastname, $pets, $size, $type, $years, $error);
 }
 else
 {
 // save the data to the database
 mysql_query("UPDATE customers SET firstname='$firstname', lastname='$lastname', pets='$pets', size='$size', type='$type', years='$years' WHERE id='$id'")
 or die(mysql_error());

 // once saved, redirect back to the view page
 header("Location: view.php");
 }
 }
 else
 {
 // if the 'id' isn't valid, display an error
 echo 'Error!';
 }
 }
 else
 // if the form hasn't been submitted, get the data from the db and display the form
 {

 // get the 'id' value from the URL (if it exists), making sure that it is valid (checing that it is numeric/larger than 0)
 if (isset($_GET['id']) && is_numeric($_GET['id']) && $_GET['id'] > 0)
 {
 // query db
 $id = $_GET['id'];
 $result = mysql_query("SELECT * FROM customers WHERE id='$id' ")
 or die(mysql_error());
 $row = mysql_fetch_array($result);

 // check that the 'id' matches up with a row in the databse
 if($row)
 {

 // get data from db
 $firstname = $row['firstname'];
 $lastname = $row['lastname'];
 $pets = $row['pets'];
 $size = $row['size'];
 $type = serialize($row['type']);
 $years = $row['years'];


 // show form
 renderForm($id, $firstname, $lastname, $pets, $size, $type, $years, '');
 }
 else
 // if no match, display result
 {
 echo "No results!";
 }
 }
 else
 // if the 'id' in the URL isn't valid, or if there is no 'id' value, display an error
 {
 echo 'Error!';
 }
 }
?>

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
        <title>View customer orders</title>
</head>
<body>

<?php

        include('connect-db.php');


        $result = mysql_query("SELECT * FROM customers")
                or die(mysql_error());

        echo "<table border='1' cellpadding='10'>";
        echo "<tr> <th>ID</th> 
                   <th>First Name</th> 
                   <th>Last Name</th> 
                   <th>Pets</th> 
                   <th>Size</th>
                   <th>Type</th> 
                   <th>Years</th> 
                   <th></th> 
                   <th></th>
             </tr>";

        while($row = mysql_fetch_array( $result )) {


                echo "<tr>";
                echo '<td>' . $row['id'] . '</td>';
                echo '<td>' . $row['firstname'] . '</td>';
                echo '<td>' . $row['lastname'] . '</td>';
                echo '<td>' . $row['pets'] . '</td>';
                echo '<td>' . $row['size'] . '</td>';
                echo '<td>' . $row['type']. '</td>';
                echo '<td>' . $row['years'] . '</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="pets.php">Add a new record</a></p>

</body>
</html>

この時点で正直迷っています。私はこれに 1 か月間取り組んできましたが、もう何をしているのかわかりません。誰かがこれを編集して機能させるのを手伝ってくれたら、とても感謝しています。

みんな、ありがとう。

4

1 に答える 1

0

そうです、データベースから保存した結果を取得するには、これを行う方法を知っていると思います。

ラジオボタンの場合、データベースから「サイズ」の値を選択し、ifステートメントを使用して「チェック」されるラジオボタンを決定します。

forename / surnameは、データベースからforename / surnameをinput取得し、取得した値に適切なタグを設定するだけの問題です。

コンボ/ドロップダウンボックスを処理するためのテクニックをすでに投稿しました

'type'チェックボックスに対して同様のプロセスを実行し、データベースの値をチェックボックスinputタグの値と比較し、値が一致する場合は、チェックボックスをオンに設定します。

次回は、助けを求めているものをより具体的にして、コードが含まれているファイルに対応するセグメントにコードを分割してください。

3つのファイルがある場合は、ファイルごとにコードブロックを用意します。

于 2012-06-10T16:09:11.470 に答える