>  기사  >  웹 프론트엔드  >  Ajax에서 배열을 백그라운드로 전달하는 방법

Ajax에서 배열을 백그라운드로 전달하는 방법

php中世界最好的语言
php中世界最好的语言원래의
2018-03-31 15:08:2410043검색

이번에는 ajax가 배열을 백그라운드로 전송하는 방법을 보여드리겠습니다. ajax가 배열을 백그라운드로 전송하는 주의 사항은 무엇입니까? 다음은 실제 사례입니다.

머리말

Ajax를 사용하여 다중 선택 상자를 비동기적으로 제출하여 작업해야 하는 개체의 ID를 가져옵니다. 이때 각 ID에 대한 개체를 만든 다음 넣을 수 있습니다. 그런 다음 JSON.stringify()이 배열에서 json 형식을 사용하여 백그라운드의 inputStream에 있는 json을 구문 분석합니다.문자열 JSON.stringify()对这个数组进行json的格式化;在后台中再inputStream中解析出我们的json字符串,之后只用:

new JSONArray()得到json数组,循环解析我们想要的属性:

var countsCheckBox = $("input[type='checkbox']:checked"); 
 var booksid = []; 
 for(var i=0;i<countsCheckBox.length;i++){ 
 //使用[]取得元素是是一个domElement元素,取值需要使用.value, 
 //如果使用countsCheckBox.eq(i) 则是一个Obkject元素,就可以使用val()取值 
 //alert(countsCheckBox[i].value); 
 mysendbook_id = {}; 
 mysendbook_id[&#39;book_id&#39;] = countsCheckBox[i].value; 
 booksid[i] = mysendbook_id; 
 } 
 //alert(booksid); 
  var confirmdel= confirm(&#39;确认要删除吗?&#39;); 
  if(confirmdel){ 
  //开始请求删除 
   $.ajax({ 
     url:&#39;selectdelbooks&#39;, 
     data:JSON.stringify(booksid), 
     type:&#39;post&#39;, 
     success:function(res){ 
      alert("删除成功"); 
     location.replace("/TheDemo/books/pageBooksShow"); 
     } 
     }); 
  }

上面的js中我们把每一个选中的id放到一个mysendbook_id的“book_id”的属性中,再把这个对象放到booksid的数组中;到发送异步请求时使用

JSON.stringify(bookid)格式化这个booksid数组,得到一个json的数组。

再看后台我们怎么接收:

一个是做一个类里面有一个list,这个list装的是只有一个属性为bookid的类,再使用注解@RequestBody加到这个形参上。但是这样比较麻烦;

还有一种是从输入流里面获取数据,使用IOUtils.toString 把inputStream转为字符串,再使用new JSONArray(mybooksid);을 사용하고

new JSONArray()를 사용하여 json 배열을 가져오고 루프를 통해 원하는 속성을 구문 분석합니다.

<span style="font-family:SimSun;font-size: 10.5pt;"> </span><span style="font-family:KaiTi_GB2312;font-size:14px;"> @RequestMapping("selectdelbooks") 
 public String selectdelbooks(HttpServletRequest request) throws Exception { 
  ServletInputStream inputStream = request.getInputStream(); 
  String mybooksid = IOUtils.toString(inputStream); 
  JSONArray jsonarr = new JSONArray(mybooksid); 
  List<String> book_id =new ArrayList<String>(); 
  for (int i=0;i<jsonarr.length();i++){ 
   book_id.add(((JSONObject)jsonarr.get(i)).getString("book_id")); 
  }...</span>

js 위에서는 선택한 각 ID를 mysendbook_id의 "book_id" 속성에 넣은 다음 이 객체를 booksid 배열에 넣습니다. 비동기 요청을 보낼 때

JSON.stringify(bookid) 형식을 사용합니다. 이 booksid 배열을 변환하여 json 배열을 얻습니다.

백그라운드에서 어떻게 수신하는지 살펴보겠습니다.

첫 번째는 목록으로 클래스를 만드는 것입니다. 이 목록에는 bookid라는 속성이 하나만 있는 클래스가 포함되어 있으며, 주석 @을 사용하여 이를 추가합니다. RequestBody 이 형식 매개변수에 대한 것입니다. 하지만 이것이 더 문제가 됩니다.

또 다른 방법은 입력 스트림에서 데이터를 가져오고 IOUtils.toString 을 사용하여 inputStream을 문자열로 변환한 다음 new JSONArray(mybooksid); 이 json 배열을 가져오세요

각 json에서 book_id의 속성 값을 가져옵니다

rrreee

이런 식으로 우리는 선택한 id 값이 포함된 목록을 얻습니다.

데이터베이스의 정보:

페이지의 다중 선택:

백그라운드에서 얻은 선택한 책의 ID:

사례를 읽으신 후 방법을 마스터하신 것 같습니다. 이 기사에서 더 흥미로운 정보를 얻으려면 오세요. PHP 중국어 웹사이트의 다른 관련 기사에도 주목하세요!
추천 자료:

🎜🎜AJAX 페이징 효과 구현 방법🎜🎜🎜🎜Ajax를 사용하여 양식을 제출하고 그 안의 json 데이터를 받는 방법🎜🎜🎜🎜🎜Ajax를 사용하여 목록과 보조 드롭다운의 무한 로딩을 달성하는 방법 메뉴 옵션(코드 첨부) 🎜🎜🎜

위 내용은 Ajax에서 배열을 백그라운드로 전달하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.