ajax処理の$.postで複数値を返すにはどうすればいいのでしょうか?
値を一つだけ返すならば問題なく出来ていたのですが、返す値が複数になると上手くいきませんでした。以下試して上手くいったことです。
html
1<!--index.html--> 2 3<!DOCTYPE html> 4<html lang="ja"> 5<head> 6 <meta charset="utf-8"> 7 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script> 8 <script src="test.js"></script> 9 <title>ajax練習</title> 10</head> 11<body> 12 13 <input id="date_1" type="date" name="date1" value=""> 14 <input id="date_2" type="date" name="date2" value=""> 15 16 <div id="btn">BUTTON</div> 17 18 <div id="result_1"></div> 19 <div id="result_2"></div> 20 21</body> 22</html> 23
BUTTONをクリックしたらphpのデータを読み込む感じです。あまりよろしくない書き方かもしれませんが、これでもphpの方で読み込んではくれました。
jquery
1//test.js 2 3$(function() { 4 'use strict'; 5 6 $('#btn').click(function() { 7 8 var val1 = $("#date_1").val(); 9 var val2 = $("#date_2").val(); 10 11 $.post('/test.php', { 12 date1: val1, 13 date2: val2 14 }, function(res) { 15 console.log(res); 16 $("#result_1").text(res); 17 // $("#result_2").text(res); 場所を分けて出力したい 18 }); 19 }); 20 21}); 22
PHP
1//test.php 2 3<?php 4 5$fromjs1 = $_POST["date1"]; 6$fromjs2 = $_POST["date2"]; 7$date1 = date("Y年m月d日", strtotime($fromjs1)); 8$date2 = date("Y年m月d日", strtotime($fromjs2)); 9echo $date1 ."\n"; 10echo $date2;
しかし上の書き方は調べても出てきませんし、どちらにせよ値を一個しか返せない気がしたので、送信段階で配列にしてphpに渡してあげる感じなのかなと予測してtest.jsの方でこんな感じにも書いてみました。
jquery
1//test.js 2 3$(function() { 4 'use strict'; 5 6 $('#btn').click(function() { 7 8 var values = { 'date1': $('#date_1').val(), 'date2': $('#date_2').val() }; 9 10 $.post('/test.php', { 11 data : values 12 }, function(res) { 13 console.log(res); 14 $("#result_1").text(res); 15 // $("#result_2").text(res); 場所を分けて出力したい 16 }); 17 }); 18 19});
先ほどよりもそれなりになった感はありますが、結局返してくる値が配列でないと分けることはできないのかなという感じです。
php
1//test.php 2 3<?php 4 5$fromjs1 = $_POST["data"]["date1"]; 6$fromjs2 = $_POST["data"]["date2"]; 7 8$date1 = date("Y年m月d日", strtotime($fromjs1)); 9$date2 = date("Y年m月d日", strtotime($fromjs2)); 10echo $date1 ."\n"; 11echo $date2 ;
あれ、結局これだとさっきとあまり変わらない、、、、と悩んでおります。
出力される結果を分けたい場合はどのように記述すればよいでしょうか?
ご教授よろしくお願いいたします。
回答3件
あなたの回答
tips
プレビュー