4

フォームの送信後、フォームフィールド内にユーザー入力を保持して、ユーザーがエントリを更新できるようにすることは可能でしょうか。[いくつかのJS検証を含む]html登録フォームを作成し、次にphpファイルを使用してデータをSQLに挿入し、挿入したデータをテーブルビューに表示します。また、フォームのhtmlコードをphpファイルに含めて、送信後にフォームを表示できるようにします。しかし、フォームを送信した後、フィールドにデータを保持できませんでした!フォームは次のとおりです。

<!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>
        <script type="text/javascript">
            <!--
            function validateNum(evt) {
                        var theEvent = evt;
                        var key = theEvent.keyCode || theEvent.which;
                        key = String.fromCharCode( key );
                        var regex = /[0-9]/;

                        if( !regex.test(key) ) {
                            theEvent.returnValue = false;
                            if(theEvent.preventDefault) theEvent.preventDefault();
                        }
                    }       
            function validate(evt){

                if( document.myForm.ic.value == ""){
                    alert( "IC Number cann't be empty!" );
                    document.myForm.ic.focus() ;
                    return false;}
                else if(isNaN( document.myForm.ic.value ) || document.myForm.ic.value.length != 12){
                    evt.preventDefault();

                    alert( "Please provide your correct IC Number!" );
                    document.myForm.ic.focus() ;
                    return false;}
                if( document.myForm.name.value == "") {

                    alert( "Name cann't be empty!" );
                    document.myForm.name.focus() ;
                    return false;
                } 

                if( document.myForm.contact.value == ""){

                    alert( "Contact number cann't be empty!");
                    document.myForm.contact.focus() ;
                    return false;
                    } else if(isNaN( document.myForm.contact.value )) 
                    {
                    evt.preventDefault();

                    alert( "Please provide your correct Contact Number!" );
                    document.myForm.contact.focus() ;
                    return false;

                }
                 if( document.myForm.address.value == "" ){
                    alert( "Please provide your Address!" );
                    document.myForm.address.focus() ;
                    return false;
                }
            }

            //-->
        </script>
    </head>
    <style type="text/css">
        h2 {
            color: #06C;
        }
        body {
            background-color: #FFC;
        }
    </style>

    <body>
        <form name="myForm" method="post" action="insert.php" onsubmit="return(validate(event));">
            <div align="center"><br>
                    <table width="453" border="0">
                        <tr>
                            <th colspan="4" bgcolor="#99FFFF" scope="col">
                                <h3>Workshop Name: PHP! </h3></th>
                        </tr>
                        <tr bgcolor="#99FF99">
                            <td width="142"> IC Number</td>
                            <td width="15"><div align="center">:</div></td>
                            <td colspan="2"><div align="right">
                                    <input
                                        name="ic" type="text" id="ic" maxlength="12" size="45" onkeypress='validateNum(event)'/>
                                </div></td>
                        </tr>
                        <tr bgcolor="#99FFFF">
                            <td>Full Name</td>
                            <td><div align="center">:</div></td>
                            <td colspan="2"><div align="right">
                                    <input
                                        name="name" type="text" id="name" size="45"/>
                                </div></td>
                        </tr>
                        <tr bgcolor="#99FF99">
                            <td>Contact No.</td>
                            <td><div align="center">:</div></td>
                            <td colspan="2"><div align="right">
                                    <input
                                        name="contact" type="text" id="contact" size="45" onkeypress='validateNum(event)' />
                                </div></td>
                        </tr>
                        <tr bgcolor="#99FFFF">
                            <td>Email</td>
                            <td><div align="center">:</div></td>
                            <td colspan="2"><div align="right">
                                    <input
                                        name="mail" type="text" id="mail" size="45"/>
                                </div></td>
                        </tr>
                        <tr bgcolor="#99FF99">
                            <td height="60">Address</td>
                            <td><div align="center">:</div></td>
                            <td colspan="2">
                                <div align="right">
                                    <textarea name="address" id="address" cols="35" rows="3"></textarea>
                                </div>
                            </td>
                        </tr>
                        <tr bgcolor="#99FFFF">
                            <td colspan="2">&nbsp;</td>
                            <td width="231"><input type="reset" value="Clear" /></td>
                            <td width="47"><div align="right">
                                    <input type="submit" value="Submit" />
                                </div></td>
                        </tr>
                    </table>

                    <br>
                        </div>
                        </form>
                     </body>
                 </html>

これがinsert.phpファイルです:

<!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>
        <script type="text/javascript">
            <!--
            function validateNum(evt) {
                        var theEvent = evt;
                        var key = theEvent.keyCode || theEvent.which;
                        key = String.fromCharCode( key );
                        var regex = /[0-9]/;

                        if( !regex.test(key) ) {
                            theEvent.returnValue = false;
                            if(theEvent.preventDefault) theEvent.preventDefault();
                        }
                    }       
            function validate(evt){

                if( document.myForm.ic.value == ""){
                    alert( "IC Number cann't be empty!" );
                    document.myForm.ic.focus() ;
                    return false;}
                else if(isNaN( document.myForm.ic.value ) || document.myForm.ic.value.length != 12){
                    evt.preventDefault();

                    alert( "Please provide your correct IC Number!" );
                    document.myForm.ic.focus() ;
                    return false;}
                if( document.myForm.name.value == "") {

                    alert( "Name cann't be empty!" );
                    document.myForm.name.focus() ;
                    return false;
                } 

                if( document.myForm.contact.value == ""){

                    alert( "Contact number cann't be empty!");
                    document.myForm.contact.focus() ;
                    return false;
                    } else if(isNaN( document.myForm.contact.value )) 
                    {
                    evt.preventDefault();

                    alert( "Please provide your correct Contact Number!" );
                    document.myForm.contact.focus() ;
                    return false;

                }
                 if( document.myForm.address.value == "" ){
                    alert( "Please provide your Address!" );
                    document.myForm.address.focus() ;
                    return false;
                }
            }

            //-->
        </script>
    </head>
    <style type="text/css">
        h2 {
            color: #06C;
        }
        body {
            background-color: #FFC;
        }
    </style>

    <body>
        <form name="myForm" method="post" action="update.php" onsubmit="return(validate(event));">
            <div align="center"><br>
                    <table width="453" border="0">
                        <tr>
                            <th colspan="4" bgcolor="#99FFFF" scope="col">
                                <h3>Workshop Name: PHP! </h3></th>
                        </tr>
                        <tr bgcolor="#99FF99">
                            <td width="142"> IC Number</td>
                            <td width="15"><div align="center">:</div></td>
                            <td colspan="2"><div align="right">
                                    <input
                                        name="ic" type="text" id="ic" maxlength="12" size="45" onkeypress='validateNum(event)'/>
                                </div></td>
                        </tr>
                        <tr bgcolor="#99FFFF">
                            <td>Full Name</td>
                            <td><div align="center">:</div></td>
                            <td colspan="2"><div align="right">
                                    <input
                                        name="name" type="text" id="name" size="45"/>
                                </div></td>
                        </tr>
                        <tr bgcolor="#99FF99">
                            <td>Contact No.</td>
                            <td><div align="center">:</div></td>
                            <td colspan="2"><div align="right">
                                    <input
                                        name="contact" type="text" id="contact" size="45" onkeypress='validateNum(event)' />
                                </div></td>
                        </tr>
                        <tr bgcolor="#99FFFF">
                            <td>Email</td>
                            <td><div align="center">:</div></td>
                            <td colspan="2"><div align="right">
                                    <input
                                        name="mail" type="text" id="mail" size="45"/>
                                </div></td>
                        </tr>
                        <tr bgcolor="#99FF99">
                            <td height="60">Address</td>
                            <td><div align="center">:</div></td>
                            <td colspan="2">
                                <div align="right">
                                    <textarea name="address" id="address" cols="35" rows="3"></textarea>
                                </div>
                            </td>
                        </tr>
                        <tr bgcolor="#99FFFF">
                            <td colspan="2">&nbsp;</td>
                            <td width="231"><input type="reset" value="Clear" /></td>
                            <td width="47"><div align="right">
                                    <input type="submit" value="Update" />
                                </div></td>
                        </tr>
                    </table>

                    <br>
                        </div>
                        </form>


                    <br>
                        </div>
                        </form>

                        <div align="center">
                          <?php
                        if (!mysql_connect('localhost', 'root', '')) {

                            echo "Connected";
                        }


                        mysql_select_db("workshop");


// Get values from form
                        $ic = mysql_real_escape_string($_POST['ic']);
                        $name = mysql_real_escape_string($_POST['name']);
                        $contact = mysql_real_escape_string($_POST['contact']);
                        $mail = mysql_real_escape_string($_POST['mail']);
                        $address = mysql_real_escape_string($_POST['address']);

                        if (staff_detail_exist($ic) == "available") {

                            insert_staff_detail($ic, $name, $contact, $mail, $address, $paytype);
                            echo "<p style='text-align:center; color:green;'>" . "Workshop application successful! You will be notified shortly via E-mail after confirmation! Thank You!";
                        } else if (staff_detail_exist($ic) == "exist") {

                            echo "<p style='text-align:center; color:red;'>" . "Record already exists! Please enter another Staff ID. Thank You!" . "</p>";
                        }

                        function insert_staff_detail($ic, $name, $contact, $mail, $address, $paytype) {

                            $sql = "INSERT INTO apply (staffid, staffname, staffno, staffemail, staffaddress, paytype) VALUES ('$ic', '$name', '$contact', '$mail', '$address','$paytype')";
                            mysql_query($sql);
                        }

                        function staff_detail_exist($ic) {

                            $result = null;
                            $sql = "SELECT * FROM apply WHERE staffid = '$ic'";
                            $data = mysql_query($sql);

                            if (mysql_num_rows($data) == 0) {

                                $result = "available";
                            } else {

                                $result = "exist";
                            }

                            return $result;
                        }

                $staffid = $_POST['ic'];

                $con = mysql_connect("localhost", "root", "");
                if (!$con) {
                    die('Could not connect: ' . mysql_error());
                }

                mysql_select_db("workshop", $con);
                $result = mysql_query("SELECT * FROM apply where staffid = '$ic'");

                echo "<table width=400 border=1 cellpadding=0 align=center>";

                while ($row = mysql_fetch_array($result)) {
                    echo "<tr>";
                    echo "<th>Staff/IC Number: </th><td>" . "<center>" . $row['staffid'] . "</center>" . "</td>";
                    echo "</tr>";
                    echo "<th>Name: </th><td>" . "<center>" . $row['staffname'] . "</center>" . "</td>";
                    echo "</tr>";
                    echo "<th>Email: </th><td>" . "<center>" . $row['staffemail'] . "</center>" . "</td>";
                    echo "</tr>";
                    echo "<th>Contact No.: </th><td>" . "<center>" . $row['staffno'] . "</center>" . "</td>";
                    echo "</tr>";
                    echo "<th>Address: </th><td>" . "<center>" . $row['staffaddress'] . "</center>" . "</td>";
                    echo "</tr>";
                }
                echo "</table>";

                mysql_close($con);
 ?>
                    </body>
                </html>

value="<? echo "$row['staffid']"?>"phpファイルのフォームのフィールドにlikeを追加しようとしましたが、うまくいきませんでした。私はPHPの基本的なことしかしていません。それで、何か助けはありますか?ありがとう!

4

3 に答える 3

2

おかげさまで、ようやく機能しました:)value="<?php echo isset($_POST['myField']) ? $_POST['myField'] : 'myField_db' ?>"入力タグ内で使用しました。つまり、次のようになります。<input type="text" name="myField" value="<?php echo isset($_POST['myField']) ? $_POST['myField'] : 'myField_db' ?>" />ここで、myFieldは入力名myField_db、はデータベースの列名です。

于 2012-12-06T03:15:12.600 に答える
1
Take the form posted values just above your html code like this
<?php
    if (isset($_POST["submit"]) && $_POST["submit"]=='Submit') {
        $name=$_POST["name"];
    }
?>

And echo it in your html form.
 <input name="name" type="text" id="name" size="45" value="<? echo $name?>"/>
于 2012-12-05T05:05:23.177 に答える
1

私はこの関数を数回使用しました。とても便利

function getPost($field){
   return (isset($_POST[$field]) && $_POST[$field] != "" ? $_POST[$field] : "");
}

使用法

<input type="text" name="contact" value="<?php echo getPost("contact"); ?>" />

これは、ユーザーが情報を送信し、何らかの理由でフォームに再度返送される場合です。たとえば、エントリがPHP検証に合格しなかった可能性があります。

于 2012-12-05T05:18:50.340 に答える