0

こんにちは、複数の画像をアップロードし、php、mysql、および javascript を使用して単一のフォームを使用して mysql db に挿入したいと考えています。私はコーディングを適用しています。php アップロードは問題なく動作します。複数選択のJavaScriptコードが機能しません。+ および _ 記号を設定して、複数の選択ボックスを追加または削除し、1 回の送信で選択してアップロードします。アップロードと挿入データベースは正常に機能しますが、インクメント(+) 記号が機能しません。一度に 1 つの画像しかアップロードできません。以下のコードが表示されます。私を助けてください。

index.php:

<html>
<head>
<title>Multiple Upload</title>
</head>
<script language="javascript">
    function fncCreateElement(){

       var mySpan = document.getElementById('mySpan');

       var myLine = document.getElementById('hdnLine');
       myLine.value++;

       // Create input text
       var myElement1 = document.createElement('input');
       myElement1.setAttribute('type',"text");
       myElement1.setAttribute('name',"txtGalleryName"+myLine.value);
       myElement1.setAttribute('id',"txt"+myLine.value);
       mySpan.appendChild(myElement1);  

       // Create input file
       var myElement2 = document.createElement('input');
       myElement2.setAttribute('type',"file");
       myElement2.setAttribute('name',"fileUpload"+myLine.value);
       myElement2.setAttribute('id',"fil"+myLine.value);
       mySpan.appendChild(myElement2);  

       // Create <br>
       var myElement3 = document.createElement('<br>');
       myElement3.setAttribute('id',"br"+myLine.value);
       mySpan.appendChild(myElement3);
    }

    function fncDeleteElement(){

        var mySpan = document.getElementById('mySpan');

        var myLine = document.getElementById('hdnLine');

        if(myLine.value > 1 )
        {

            // Remove input text
            var deleteFile = document.getElementById("txt"+myLine.value);
            mySpan.removeChild(deleteFile);

            // Remove input file
            var deleteFile = document.getElementById("fil"+myLine.value);
            mySpan.removeChild(deleteFile);

            // Remove <br>
            var deleteBr = document.getElementById("br"+myLine.value);
            mySpan.removeChild(deleteBr);

            myLine.value--;
        }
    }
</script>
<body>
    <form action="upload.php" method="post" name="form1" enctype="multipart/form-data">
        <input type="text" name="txtGalleryName1"><input type="file" name="fileUpload1">
        <input name="btnCreate" type="button" value="+" onClick="JavaScript:fncCreateElement();">
        <input name="btnDelete" type="button" value="-" onClick="JavaScript:fncDeleteElement();"><br>   
        <span id="mySpan"></span>
        <input name="hdnLine" type="hidden" value="1">
        <input name="btnSubmit" type="submit" value="Submit">
    </form>
</body>
</html>

upload.php:

<?php
include("config.php");
        for($i=1;$i<=(int)($_POST["hdnLine"]);$i++)
        {
            if($_FILES["fileUpload".$i]["name"] != "")
            {
                if(copy($_FILES["fileUpload".$i]["tmp_name"],"shotdev/".$_FILES["fileUpload".$i]["name"]))
                {
                    $strSQL = "INSERT INTO gallery ";
                    $strSQL .="(GalleryName,Picture) VALUES ('".$_POST["txtGalleryName".$i]."','".$_FILES["fileUpload".$i]["name"]."')";
                    mysql_query($strSQL);
                    echo "Copy/Upload ".$_FILES["fileUpload".$i]["name"]." completed.<br>";
                }
            }
        }

        echo "<br><a href='view.php'>View file</a>";

        mysql_close();
    ?>
4

1 に答える 1

0

この行を変更します。

<input name="hdnLine" type="hidden" value="1">

の中へ:

<input id="hdnLine" type="hidden" value=1>
于 2012-09-12T12:52:36.743 に答える