JQuery AJAX 요청에서 FormData와 문자열 데이터를 모두 전송하는 방법은 무엇입니까?

DDD
풀어 주다: 2024-10-22 14:18:03
원래의
366명이 탐색했습니다.

How to Transmit Both FormData and String Data in a JQuery AJAX Request?

JQuery AJAX를 통해 FormData와 문자열 데이터를 모두 보내는 방법은 무엇입니까?

파일 입력과 숨겨진 입력 필드가 모두 포함된 양식으로 작업할 때 둘 다 보내는 데 어려움을 겪을 수 있습니다. FormData()를 사용하여 데이터 세트를 함께 묶습니다. 이 문서에서는 이 문제에 대한 해결책을 제공합니다.

FormData에서는 fd.append("file", file_data) 메서드를 사용하여 파일 데이터를 추가할 수 있습니다. 그러나 파일과 함께 숨겨진 입력 데이터를 포함하려면 다음 단계를 사용해야 합니다.

  1. $('form').serializeArray()를 사용하여 각 데이터를 나타내는 객체 배열을 얻습니다. 입력 필드와 그 값.
  2. 배열을 반복하고 fd.append(input.name,input.value)를 사용하여 각 필드의 이름과 값을 FormData 객체에 추가합니다.

예를 들어 HTML 코드:

<code class="html"><form action="image.php" method="post" enctype="multipart/form-data">
  <input type="file" name="file[]" multiple="">
  <input type="hidden" name="page_id" value="<?php echo $page_id; ?>"/>
  <input type="hidden" name="category_id" value="<?php echo $item_category->category_id; ?>"/>
  <input type="hidden" name="method" value="upload"/>
  <input type="hidden" name="required[category_id]" value="Category ID"/>
</form></code>
로그인 후 복사

및 다음 JQuery/Ajax 코드:

<code class="javascript">var fd = new FormData();
var file_data = $('input[type="file"]')[0].files; // for multiple files
for (var i = 0; i < file_data.length; i++) {
  fd.append("file_" + i, file_data[i]);
}
var other_data = $('form').serializeArray();
$.each(other_data, function (key, input) {
  fd.append(input.name, input.value);
});
$.ajax({
  url: 'test.php',
  data: fd,
  contentType: false,
  processData: false,
  type: 'POST',
  success: function (data) {
    console.log(data);
  },
});</code>
로그인 후 복사

이 코드는 먼저 입력에서 파일을 가져와 FormData 개체에 추가합니다. . 그런 다음 serializeArray()를 사용하여 숨겨진 입력 필드에서 값을 가져와 FormData 객체에도 추가합니다. 마지막으로 데이터는 Ajax 요청을 사용하여 서버로 전송됩니다.

이 단계를 수행하면 JQuery AJAX를 통해 FormData와 문자열 데이터를 함께 성공적으로 전송하여 필요한 모든 데이터가 요청과 함께 전송되도록 할 수 있습니다.

위 내용은 JQuery AJAX 요청에서 FormData와 문자열 데이터를 모두 전송하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!