Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,027

HOME > PHP > PHP Forum > ขอคำแนะนำ เกี่ยวกับการใช้ ajax ส่งรูปและข้อความ มีปัญหาที่ผมไม่สามารถส่งฟอร์มได้



 

ขอคำแนะนำ เกี่ยวกับการใช้ ajax ส่งรูปและข้อความ มีปัญหาที่ผมไม่สามารถส่งฟอร์มได้

 



Topic : 131899



โพสกระทู้ ( 60 )
บทความ ( 0 )



สถานะออฟไลน์




index.php
Code (PHP)
<html>
<head>
.
.
.
</head>
<body>
.
.
.
<form class="uploadForm" method="post" enctype="multipart/form-data" name="formpost" id="formpost">
                                 <div class="modal-content animate">
                                   <div class="container">
                                     <div class="login-form">
                                     <select class="wide" name="policy" id="policy">
                                         <option data-display="นโยบาย" value="1">นโยบาย</option>
                                         <?php
                                           $srtPolList = "SELECT * FROM `policy` WHERE `pol_id` > 1;";
                                           $queryPolList = $mysqli->query($srtPolList);
                                           foreach ($queryPolList as $row ) {
                                             echo "<option value=".$row['pol_id'].">".$row['pol_name']."</option>";
                                           }
                                         ?>
                                     </select>
                                   </div>
                                     <div class="login-form">
                                       <br>ชื่อเรื่อง<br>
                                       <input class="textinput" type="text" name="name">
                                       </div>
                                       <div class="login-form">
                                       <br>เนื้อเรื่อง<br>
                                       <textarea id="subject" name="comment" placeholder="เขียนเรื่องของคุณ"></textarea>
                                     </div>
                                     <div class="login-form">
                                       <br>อัพโหลดภาพ<br>
                                       <input type="file" name="images[]" id="images" multiple="multiple"><br><br>
                                       <button class="au-btn au-btn--block au-btn--green m-b-20" type="submit" value="submit">Save</button>
                                     </div>
                                     <div id="uploadStatus"></div>
                                   </div>
                                 </div>
                               </form>
.
.
.
<script src="vendor/jquery-3.2.1.min.js"></script>
<script src="js/savepost.js"></script>
<script type="text/javascript" src="js/jquery.form.js"></script>
</body>
</html>


savepost.js
Code (js)
$(document).ready(function() {

 $("#savepost").click(function() {

 $("#uploadStatus").html('<img style="height:200px;" src="../image/uploading.svg"/>');

 $.ajax({
    type: "POST",
    url: "upload.php",
    data: $("#formpost").serialize(),
    success: function(result) {															 
    var content = '';
     $.each(result, function(i, item){
        content = content + "<div class='col-lg-3 col-sm-6'>"
		                   + "<div class='accomodation_item text-center'>"
			           + "<div class='hotel_img'>"
                                   + "<img class='preview' src='image/" + item.img_preview + "' alt=''>"
                                   + "<a onclick='viewpopup(" + item.post_id + ")' "
                                   + "class='btn theme_btn button_hover'>อ่านต่อ</a></div>"
                                   + "<a href=''><h4 class='sec_h4'>" + item.name
                                   + " </h4></a></div></div> ";
});
           $('#uploadStatus').html(content);  }
});
  return false;
  });

  });


upload.php
Code (PHP)
include("setting.php");

  header('Content-Type: application/json');

  error_reporting(E_ALL);

// we first include the upload class, as we will need it here to deal with the uploaded file

// set variables
$thisdate = date("d");
$thismonth = date("m");
$thisyear = date("Y");
$today = date("Y-m-d");
$timeuploaded = date("hisa");

    // File upload configuration

    $targetDir = "../upload/".$thisyear."/".$thismonth."/".$thisdate."/";
    if (!file_exists($targetDir)) {
       mkdir($targetDir,0775, true);
   }
    $allowTypes = array('jpg','png','jpeg','gif','JPG','PNG','JPEG','GIF');

    $images_arr = array();
    foreach($_FILES['images']['name'] as $key=>$val){
        $image_name = $_FILES['images']['name'][$key];
        $tmp_name   = $_FILES['images']['tmp_name'][$key];
        $size       = $_FILES['images']['size'][$key];
        $type       = $_FILES['images']['type'][$key];
        $error      = $_FILES['images']['error'][$key];

        // File upload path
        $fileName = basename($_FILES['images']['name'][$key]);
        $targetFilePath = $targetDir . $timeuploaded . $fileName;

        // Check whether file type is valid
        $fileType = pathinfo($targetFilePath,PATHINFO_EXTENSION);
        //var_dump($fileType);
        if(in_array($fileType, $allowTypes)){
            // Store images on the server
            if(move_uploaded_file($_FILES['images']['tmp_name'][$key],$targetFilePath)){
                $images_arr[] = $targetFilePath;
                chmod($targetFilePath, 0777);
            }
        }
    }

    //var_dump($images_arr);


    // Generate gallery view of the images
    if($_POST["policy"] > "1") {
    $strinsPost = "INSERT INTO post (
                    `name`,
                    `comment`,
                    `img_preview`,
                    `date`
                    )
                    VALUES
                    (
                      '".$_POST['name']."',
                      '".$_POST['comment']."',
                      '".$images_arr[0]."',
                      '".$today."'
                    );";

    $mysqli->query($strinsPost);
    $post_id = $mysqli->insert_id;
    //echo $post_id;
    //echo $strinsPost;

    $img_id = array();
    if(!empty($images_arr)){
        foreach($images_arr as $image_src){

          $strinsImg = "INSERT INTO images (
                          `images`
                          )
                          VALUES
                          (
                            '".$image_src."'
                          );";

          $mysqli->query($strinsImg) ;
          $img_id[] = $mysqli->insert_id;
          //echo $strinsImg;

           }

   }

   if(!empty($img_id)){
     foreach ($img_id as $postins) {

       $strinsPost = "INSERT INTO post_movement (
                       `dept_id`,
                       `pol_id`,
                       `post_id`,
                       `img_id`
                       )
                       VALUES
                       (
                         '".$_SESSION['dept_id']."',
                         '".$_POST['policy']."',
                         '".$post_id."',
                         '".$postins."'
                       );";
      $mysqli->query($strinsPost);

                      //echo $strinsPost;

     }
   }
}


มีปัญหาที่ผมไม่สามารถส่งฟอร์มได้
หากใส่ action="upload.php" ในฟอร์ม จะทำได้ปกติ แต่เมื่อผ่าน ajax ไม่สามารถทำได้ครับ ควรแก้ไขอย่างไรหรือหาข้อมูลเพิ่มจากไหนครับ



Tag : PHP, MySQL, HTML, JavaScript, Ajax, jQuery









ประวัติการแก้ไข
2018-08-28 14:54:06
Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2018-08-28 11:32:13 By : ciockie View : 1032 Reply : 2
 

 

No. 1



โพสกระทู้ ( 4,720 )
บทความ ( 8 )



สถานะออฟไลน์


Code (JavaScript)
var formData = new FormData($('#myFormID')[0]);
formData.append('any-custom-form-name', 'any-custom-form-value');

$.ajax({
    'url': 'target.php', // เปลี่ยนเอาเอง.
    // 'type': 'POST', // ไม่ควรใช้แล้ว ใช้ method แทน.
    'method': 'POST',
    'data': formData,
    // Options to tell jQuery not to process data or worry about content-type. (For ajax upload or required for using with FormData object).
    'cache': false,
    'contentType': false,
    'processData': false,
    // 'success': function() {} // ไม่ควรใช้แล้ว ไปใช้ข้างล่างนู่น.
})
.done(function( data, textStatus, jqXHR ) {
})
.fail(function( jqXHR, textStatus, errorThrown ) {
})
.always(function( jqXHR, textStatus, errorThrown ) {
});


http://api.jquery.com/jquery.ajax/
https://stackoverflow.com/questions/2320069/jquery-ajax-file-upload
https://stackoverflow.com/questions/10899384/uploading-both-data-and-files-in-one-form-using-ajax






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2018-08-28 15:19:49 By : mr.v
 


 

No. 2



โพสกระทู้ ( 60 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 1 เขียนโดย : mr.v เมื่อวันที่ 2018-08-28 15:19:49
รายละเอียดของการตอบ ::
ขอบคุณครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2018-08-28 15:29:49 By : ciockie
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : ขอคำแนะนำ เกี่ยวกับการใช้ ajax ส่งรูปและข้อความ มีปัญหาที่ผมไม่สามารถส่งฟอร์มได้
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 00
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่