-1

データベースに挿入するphpファイルにフォームでパラメータをいくつも送信したいのですが、

<html>
<head>
    <title>Self</title>
</head>
<body>
<?php

    function selfcheck($DB, $TechID, $ClientID, $SiteID, $Type, $LogTime){
        $dbConnection = mysql_connect($DB['server'], $DB['loginName'], $DB['password']);
        if(!$dbConnection){
            die('Error! ' . mysql_error());
            }
        mysql_select_db($DB['database'], $dbConnection);
        $result = mysql_query("SELECT COUNT(*) FROM Log") or die('Error! ' . mysql_error());
        while($row = mysql_fetch_array($result)){
            $count = $row['COUNT(*)'];
            $count = $count+1;
            print $count.", ".$TechID.", ".$ClientID.", ".$SiteID.", ".$LogTime.", ".$Type."<br>";
            $query = "INSERT INTO Log (LogID, TechID, ClientID, SiteID, LogTime, Type)
                        VALUES (".$count.", ".$TechID.", ".$ClientID.", ".$SiteID.", ".$LogTime.", ".$Type.")";
            mysql_query($query);
        }
    }

    $LogTime = date('Y/m/d H:i', mktime($_GET['Hour'], $_GET['Minute'], 0, $_GET['Month'], $_GET['Day'], $_GET['Year']));
    selfcheck($DB, $_GET['TechID'], $_GET['ClientID'], $_GET['SiteID'], $_GET['Type'], $LogTime);
?>
</body>

ご覧のとおり、9 つの Get 値がありますが、コードを実行しようとすると、サーバーが応答します。

"Undefined index: Minute in C:\wamp\www\NFC\self.php on line 29", and show in the URL, minute parameter has not been sent. Why does this happen? And how can I solve this problem?

リクエストを送信するコードは次のとおりです。

print "<form method='get' name='check' action='self.php'>";
    $result = mysql_query("SELECT * FROM Tech") or die('Error! '.mysql_error());
    print "Name<select id='tech' name='TechID'>";
    while($row = mysql_fetch_array($result)){
        print "<option value=".$row['TechID'].">".$row['TechName']."</option>";
    }
    print "</select>";
    $result = mysql_query("SELECT * FROM Client") or die('Error! '.mysql_error());
    print "Name<select id='client' name='ClientID'>";
    while($row = mysql_fetch_array($result)){
        print "<option value=".$row['ClientID'].">".$row['ClientName']."</option>";
    }
    print "</select>";
    $result = mysql_query("SELECT * FROM Site") or die('Error! '.mysql_error());
    print "Name<select id='site'name='SiteID'>";
    while($row = mysql_fetch_array($result)){
        print "<option value=".$row['SiteID'].">".$row['SiteName']."</option>";
    }
    print "</select>";
    print "Type<select id='type' name='Type'>";
    print "<option value='Checkin'>Check In</option>";
    print "<option value='Checkout'>Check Out</option>";
    print "</select><br>";
    print "Year<input type='text' id='year' size='4' name='Year'/>";
    print "Month<input type='text' id='month' size='2' name='Month'/>";
    print "Day<input type='text' id='day' size'2' name='Day'/>";
    print "Hour in 24<input type='text' id='hour' size='2' name='Hour'/>";
    print "Minute<input type='text' id='minute' size'2'name='Minute'/>";
    print "<input type='submit' value='Manual check' onclick='self.php'/>";
    print "</form>";

いくつかの選択肢についてはPHPファイルにあります。オプションをハードコードするのではなく、データベースから取得したいと考えています。javascript ファイルを介してパラメーターを送信しようとしましたが、状況を解決できません。

4

3 に答える 3

5

このようにマークアップを作成しても、実際には役に立ちません。

あなたの答えはここにあると思います:-

print "Minute<input type='text' id='minute' size'2'name='Minute'/>";

size属性の末尾とname属性の先頭の間にスペースはありません。この値を取得するページに関する限り、「分」という値は存在しません。

次のように変更します:-

print "Minute<input type='text' id='minute' size='2' name='Minute'/>";
于 2012-07-16T08:51:03.543 に答える
-1

フォーム データを送信するには、GET メソッドを使用します。このメソッドには、データの送信に制限があります。それに POST メソッドを使用します。データを送信するための非常に無制限のスペースがあります。

PS: php で Html を記述しないようにしてください。代わりに通常の方法を使用してください。

于 2012-07-16T08:49:13.017 に答える
-1

PHP ini ファイルでは、これらの定数の両方が POST または GET データに影響を与えることがわかりますmax_input_timepost_max_sizeGET の場合、URL の最大長も適用されます。

于 2012-07-16T08:52:07.837 に答える