1

2つのフォームを送信しようとしています。1つenctype="multipart/form-data"はファイルのアップロード用で、もう1つはファイルのアップロードなしです。私の問題は、そのうちの1つだけが機能していることです。送信ボタンは2つのフォームを送信しません。

私が試したこと:

<?php
echo '<form method="post" action="' . $PHP_SELF . '">';

....

echo '<input type="submit" name="submit" value="Submit"><br>';
echo "</form>";

echo '<form action="' . $PHP_SELF . '" method="post" enctype="multipart/form-data"> 
      <label for="file">Filename:</label>
      <input type="file" name="file" id="file"><br>
      <input type="submit" name="submit" value="Submit"></form>';

if (isset($_FILES["file"]["name"])){
    $file_name = $_FILES['file']['name'];

    if ($_FILES["file"]["error"] > 0) {
        echo "Error: " . $_FILES["file"]["error"] . "<br>";
    } else {
        echo "Upload: " . $_FILES["file"]["name"] . "<br>";
        echo "Type: " . $_FILES["file"]["type"] . "<br>";
        echo "Size: " . ($_FILES["file"]["size"] / 1024) . " kB<br>";
        echo "Stored in: " . $_FILES["file"]["tmp_name"];
        move_uploaded_file($_FILES['file']['tmp_name'], '../images/' . $file_name);
    }
}
?>
4

2 に答える 2

4

これが HTML での動作です。一度に送信できるフォームは 1 つだけです。唯一の回避策は、1 つのフォームだけですべてのデータを送信することです。

于 2013-03-22T11:57:56.477 に答える
1

以下を試してみてください:

<?php
echo '<form method="post" action="' . $PHP_SELF . '">';

....

echo '<input type="submit" name="Submit_Button_One" value="Submit"><br>';
echo '</form>';

echo '<form action="' . $PHP_SELF . '" method="post" enctype="multipart/form-data"> 
      <label for="file">Filename:</label>
      <input type="file" name="file" id="file"><br>
      <input type="submit" name="Submit_Button_Two" value="Submit"></form>';

/*First Form Submit*/

if(isset($_POST['Submit_Button_One']))
{
$dataValue = $_POST['data'];    
}

/*Second Form Submit*/

if(isset($_POST['Submit_Button_Two']))
{
  if(isset($_FILES["file"]["name"])){

     $file_name = $_FILES['file']['name'];

     if($_FILES["file"]["error"] > 0) {
        echo "Error: " . $_FILES["file"]["error"] . "<br>";
     }  else {
        echo "Upload: " . $_FILES["file"]["name"] . "<br>";
        echo "Type: " . $_FILES["file"]["type"] . "<br>";
        echo "Size: " . ($_FILES["file"]["size"] / 1024) . " kB<br>";
        echo "Stored in: " . $_FILES["file"]["tmp_name"];
        move_uploaded_file($_FILES['file']['tmp_name'], '../images/' . $file_name);
     }
   }
}

?>

これはあなたの問題を解決するのに役立つかもしれないと思います.

注:送信ボタンには別の名前を付けてください。その後、両方のフォームから必要に応じてデータを取得できます。

于 2013-03-22T12:13:11.927 に答える