0

わかった。基本的に、フォームのアップロードボタンからファイルをアップロードしようとしています。アップロードボタンを少し「スタイリッシュ」にすることにするまで、私のコードは正常に機能していました。愚かな私。

私の php ファイルの $_POST クエリは、そのアニメーション化されたボタンを識別できません。そのアニメーション化されたボタンのクラス名を POST クエリにリンクしようとしましたが、何も機能していないようです。

アニメーション化されたボタンを含む html フォーム コードは次のとおりです。

<form action="upload_file.php" method="post" enctype="multipart/form-data" >
<label for="file" style=" font-weight:normal;  font-family: Tahoma;   font-size:20px; "></br></br></br>Upload the list of Teaching Assistants here:</label>
<input  type="file" name="file" id="file" /> 
    <!--<input type ="submit"  name="submit" value="Upload" />  This button is working perfectly-->

<br />


    <div  class="button-wrapper" method="post" enctype="multipart/form-data" >
     <a href="upload_file.php"  class="a-btn">
    <span class="a-btn-text">Upload </span> 
        <span class="a-btn-slide-text">FILE!</span>
    <span class="a-btn-icon-right"><span></span></span>
                </a>

            </div>
    </form>

これが私のphpコードです:

<?php
session_start();

include "connect1.php";


if ($_POST["submit"])
{
if ($_SESSION["name"])
{
    $name = $_FILES["file"]["name"];
    $type = $_FILES["file"]["type"];
    $size = $_FILES["file"]["size"];
    $tmp_name = $_FILES["file"]["tmp_name"];
    $error = $_FILES["file"]["error"];

    if($error > 0)
    {
        echo "Error!".$error;
    }
    else
    {
        if (file_exists("upload/".$name))
        {
            echo $name." already exists";
        }
        else
        {
            $location = "upload/".$name;
            move_uploaded_file($tmp_name,$location);
            $user = $_SESSION["name"];
            $sqlcode = mysql_query("INSERT INTO upload (id,user,location) VALUES ('','$user','$location')");
            echo "<a href='$location'>Click here to view the file </a>";
        }
    }
}
else
{
    echo "Please Sign In";
}
}
else
{
echo "<a href='index.php'>";
}

このエラーの取得:

Notice: Undefined index: submit in C:\xampp\htdocs\smartalloc\upload_file.php 行 7

どんな助けでも本当に感謝しています。:)

4

2 に答える 2

0

フォームが入力からすべての情報を送信して送信するには、送信ボタンがフォームを送信できる適切なフォーム要素である必要があります。

派手なリンクを作成したり、その要素にフォームを送信してもらいたいことをフォームが知っていることを期待したりすることはできませ<span><div>。あなたがしなければならないことは、送信ボタンを保持することです:

<form action="upload_file.php" method="post" enctype="multipart/form-data">
    <label for="file">Upload the list of Teaching Assistants here:</label>
    <input type="file" name="file" id="file" />
    <input type="submit" value="Submit" />
</form>

代わりに、CSS を使用してスタイルを設定します。たくさんのオプションがあり、本当に見栄えの良いボタンを作ることができます。これらのチュートリアルのいずれかを例として参照してください (詳細については、Google の「送信ボタン CSS」だけを参照してください)。

http://speckyboy.com/2009/05/27/22-css-button-styling-tutorials-and-techniques/

第二に、あなたがこれを試したことがわかります:

<div  class="button-wrapper" method="post" enctype="multipart/form-data" >

これは有効な HTML ではありません。要素 (この場合は div) をフォームにすることはできません。methodおよびenctype属性は、<form>タグにのみ使用できます。

于 2012-10-15T16:49:43.983 に答える
0

問題は、ボタンの代わりにリンクを使用しているため、POST イベントが発生していないことだと思います。

アニメーション化されたボタンを実際のボタンに戻し、CSS でスタイリングしてみてください。

于 2012-10-15T16:35:05.563 に答える