前提・実現したいこと
selectボックスから要素を選んで「PHPからアラート」のボタンを押すとJSでValue(数値)を取得して
その取得した数値をPHPに持っていき、PHPで設定している配列とセットにして文字列にしたあと
JSにその文字列を返して画面でアラート表示したいです。
例えば、
①セレクトボックスで都道府県を選択
東京 ←選択
大阪
名古屋
京都
福岡
②JSで値を取得
0を取得
③0をPHPに渡す
④PHPで都道府県配列[jsからとってきた値]を取得
⑤JSに返して表示
の形にしたいです、
(わかりにくくてすみません。)
最初のセレクト文にセットしている値はPHPで指定しているため、
配列を実際に扱う(?)のはPHPだけにしたいと思っています。
確認のボタンではoutput.phpに遷移するためのボタンです。
(そこでは都道府県:1などで表示できています。)
発生している問題・エラーメッセージ
①アラートを表示するとおかしな文字列が出てきてしまう
エラーメッセージ(アラートで出てくる文章) ["\u798f\u5ca1","\u5317\u4e5d\u5dde","\u7b51\u8c4a","\u7b51\u5f8c","\u5927\u725f\u7530"]
②PHPで特定の処理だけ呼び出そすことができない
インターネッとを参照してみたのですが、(どんな形でもいいからと)適応させてみても
上記と結果が変わりませんでした。
該当のソースコード
html
1<!doctype html> 2<html lang="ja"> 3<head> 4 <meta charset="utf-8"> 5 6 <title>practice</title> 7 <meta name="description" content="The HTML5 Herald"> 8 <meta name="author" content="SitePoint"> 9 <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script> 10 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script> 11 <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script> 12 <script src="../index.js"></script> 13 <link rel="stylesheet" href="../index.css?v=1.0"> 14 15</head> 16 17<body> 18 <h1 > Practice </h1> 19 <form name="form" method="post" action="output.php"> 20 <div> 21 <label for="name">タイトル:</label><input type="text" name="title"> 22 </div> 23 <div class="selectList">都道府県:<select id="tiiki" name="tiiki" ></select></div> 24 <div id="para"> 25 <label for="name">本文:</label><textarea name="body_text" cols="30" rows="5"></textarea> 26 </div> 27 28 <div> 29 <input type="submit" value="確認"> 30 </div> 31 </form> 32 33 <button id="ajaxbutton">PHPからアラート</button> 34 35</body> 36 37</html>
js
1$(function make_pdmenu(){ 2 3 $.ajax({ 4 url: "../index.php", 5 type: "post", 6 dataType: "json" 7 }).done(function (response) { 8 for(i=0;i<response.length;i++){ 9 $('#tiiki').append($('<option>').val(i).text(response[i])); 10 } 11 }).fail(function () { 12 alert("failed"); 13 }); 14 15 // select要素を作る 16 $('#tiiki').append($('<option>').val('').text('選択してください')); 17 18}); 19 20$(function() { 21 $('#ajaxbutton').click (function () { 22 $.ajax({ 23 url: "../index.php", 24 type: "post", 25 dataType: "text", 26 data: { 'tiiki': $('#tiiki').val() } 27 28 }).done(function (response) { 29 alert($('#tiiki').val() + "を選択した"); 30 console.log(response); 31 alert("success :" + response); 32 }).fail(function () { 33 alert("failed"); 34 }); 35 36 }); 37}); 38
PHP
1<?php 2 3$a = '東京'; 4$b = '大阪'; 5$c = '名古屋'; 6$d = '京都'; 7$e = '福岡'; 8 9$hairetu = array($a, $b, $c, $d, $e); 10echo json_encode($hairetu); 11 12//ここの関数で配列にJSでしゅとくした値をセットして文字列として返したい 13function doredaHairetu($tiikiData ,$hairetu){ 14 $data = $_POST['tiiki']; 15 $tiiki = $hairetu[ $data ]; 16 echo $tiiki; 17} 18
回答2件
あなたの回答
tips
プレビュー