簡體   English   中英

使用相同形式但使用jquery php的不同輸入字段上傳多個文件

[英]multiple file upload using same form but different input fields using jquery php

我已經在堆棧溢出中搜索了此內容,但找不到與我的問題相關的答案。 請看一下我用來獲取數據並將其扔到php文件並將文件上傳到相應文件夾並將其鏈接存儲到數據庫的代碼。 但是我無法存儲數據。 它顯示“無法上傳數據”。

jQuery文件:

$(document).on('click','#modalMenu', function(){
        var pagename = $("#pagename").val();
        var page = 'modalMenu';
        var menuname = $("#menuname").val();
        var nav = $("#nav").val();
        var content = CKEDITOR.instances['content'].getData();

        var form_data = new FormData();
        var file_data = $('#file').get(0).files[0];
        var logo = $('#logo').get(0).files[0];
        form_data.append('file', file_data);
        form_data.append('logo', logo);
        form_data.append('pagename', pagename);
        form_data.append('menuname', menuname);
        form_data.append('content', content);
        form_data.append('nav', nav);
        form_data.append('page', page);
        $.ajax({
                    url: 'insert.php', // point to server-side PHP script 
                    //dataType: 'text',  // what to expect back from the PHP script, if anything
                    cache: false,
                    contentType: false,
                    processData: false,
                    data: form_data,                         
                    method: 'POST',
                    success: function(data){
                    alert(data);
                    location.reload();
                }

         });
    });

在某些頁面上的表格

<form  method="post" role="form" enctype="multipart/form-data"  action="javascript:;">
                    <input type="text" class="form-control" placeholder="Page Name" id="pagename" name="pagename" style="max-width:25%; display:inline" />
                    <input type="text" class="form-control" placeholder="Nav Name" id="nav" name="nav" style="max-width:25%; display:inline" />
                    <input type="text" class="form-control" placeholder="Menu Name" id="menuname" name="menuname" style="max-width:25%; display:inline" />
                    <input type="file" name="logo" id="logo" title="Menu Logo" class="form-control"  style="max-width:20%; display:inline"/>
                    <input type="text" class="form-control"  placeholder="Summery Part.. Please make it crisp" id="content" name="content" style="max-width:30%; display:inline" />
                        <script>
                                var editor = CKEDITOR.replace( "content", {
                                uiColor: "#ffffff",
                                filebrowserBrowseUrl : "../ckeditor-ckfinder-integration/ckfinder/ckfinder.html",
                                filebrowserImageBrowseUrl : "../ckeditor-ckfinder-integration/ckfinder/ckfinder.html?type=Images",
                                filebrowserFlashBrowseUrl : "../ckeditor-ckfinder-integration/ckfinder/ckfinder.html?type=Flash",
                                filebrowserUploadUrl : "../ckeditor-ckfinder-integration/ckfinder/core/connector/php/connector.php?command=QuickUpload&type=Files",
                                filebrowserImageUploadUrl : "../ckeditor-ckfinder-integration/ckfinder/core/connector/php/connector.php?command=QuickUpload&type=Images",
                                filebrowserFlashUploadUrl : "../ckeditor-ckfinder-integration/ckfinder/core/connector/php/connector.php?command=QuickUpload&type=Flash"
                            });
                            CKFinder.setupCKEditor( editor, "../" );
                        </script>
                    <input type="file" name="file" id="file" class="form-control"  style="max-width:25%; display:inline"/>
                    <input type="submit" id="modalMenu" name="modalMenu" class="btn btn-success" align="right" value="+" />
                    </form>

insert.php文件

$pageName=$_POST['page'];
     if($pageName=='modalMenu'){

$pagename=$_POST['pagename'];
$menuname=$_POST['menuname'];
$nav=$_POST['nav'];
$content=$_POST['content'];

$error=$_FILES['file']['error'];
    if($error!=0)
    {
    echo "Error with File data Upload. File not uploaded, it seems the file is not selected or there is some error with the file or the server seems busy, try later.
    We will redirect you back to the dashboard. Please wait..";
    }
    else
    {
    $fname=$_FILES['file']['name'];
    $ftype=$_FILES['file']['type'];
    $fsize=$_FILES['file']['size'];
    $ftname=$_FILES['file']['tmp_name'];
    $target="../modalMenu/$fname";

    $ans=move_uploaded_file($ftname,$target);
    if($ans)
    {
                        $error=$_FILES['logo']['error'];
                            if($error!=0)
                            {
                            echo "Error with Image Data Upload. File not uploaded, it seems the file is not selected or there is some error with the file or the server seems busy, try later.
                            We will redirect you back to the dashboard. Please wait..";
                            }
                            else
                            {
                            $logo_name=$_FILES['logo']['name'];
                            $logo_type=$_FILES['logo']['type'];
                            $logo_size=$_FILES['logo']['size'];
                            $logo_tname=$_FILES['logo']['tmp_name'];
                            $target2="../modalMenu/$fname";

                            $ans=move_uploaded_file($ftname,$target2);
                            if($ans)
                            {

                            //save info to database
                            $con=mysql_connect("localhost","root","");
                            mysql_select_db("rcg_db",$con) or die (mysql_error());
                            $target=addslashes($target);

                                $query="INSERT INTO `modalmenu`(`pagename`, `nav`, `menuname`, `menulogo`, `content`, `readmore`) VALUES ('$pagename','$nav','$menuname','$target' ,'$content','$target2');";
                                $n=mysql_query($query);

                                if($n==1)
                                {
                                    echo "File upload successful! Data is added. Please wait while page reloads";

                                }
                                else
                                {
                                echo "File not uploaded, server seems busy, try later. We will redirect you back to the dashboard. Please wait..";

                                }
                            }
                            }
    }
    else
    {
    echo "File not uploaded, server seems busy, try later. We will redirect you back to the dashboard. Please wait.";

    }

    }

}

先感謝您。 如果我使用的編碼方式不好,請推薦並解決該問題。

據我了解,您想將ajax發送到PHP,但是PHP無法保存它?

病給你一個例子

jQuery的

$(#modalMenu).on('click',function(){
    var fname = $("#fname").val();
    var lname = $("#lname").val();
    var age = $("#age").val();

    $.ajax({
        url: 'insert.php', //point to server-side PHP script
        dataType: 'json',
        type: "POST",
        data:{
            "fname" : fname,
            "lname" : lname,
            "age" : age,
            "save" : true
        },
        success: function(yes){
            if(yes.success == true){
                window.location.reload(true);
            }
        }
    });
});

的PHP

$fname = $_POST['fname'];
$lname = $_POST['lname'];
$age = $_POST['age'];

$sql = "INSERT INTO beneficiary (fname, lname, age)
    VALUES ('$fname','$lname','$age')";
$result = mysql_query($sql);

echo json_encode(array(
    "success" => true,
));

請參閱以下鏈接,我認為這對您很有用http://www.codexworld.com/upload-multiple-images-using-jquery-ajax-php/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM