前提・実現したいこと
formでチェックされた(radioボタン)値をajaxを使ってphpに送る。
phpで受け取った値を見て配列と比較しヒットしたものを表示
(ヒットした場合は全て表示させる 例:["color"=>"red","type"=>"a"]という配列があってcolorの赤がチェックされて入ればcolorとtypeどちらも表示させる)
と、したいのですがまずformの値がうまく受け取れず進んでいません。
発生している問題・エラーメッセージ
//index.html Notice: Undefined index: color in ...
該当のソースコード
html
1// index.html 2<form id="form" name="search" action="" method="POST"> 3 <input type="radio" id="color01" name="color" value="red"><label for="color01">赤</label> 4 <input type="radio" id="color02" name="color" value="blue"><label for="color02">青</label> 5 <button class="submit" value="検索">検索</button> 6</form>
js
1$(function () { 2 $.ajax({ 3 url: 'ajax.php', 4 type: "POST", 5 dataType: "html", 6 success: function(data){ 7 var html = ''; 8 $('.result').html('aaa'); 9 $('button').on('click',function(event){ 10 event.preventDefault(); 11 12 $('.result').html(data); 13 }); 14 } 15 }); 16});
php
1<?php 2$data = [ 3 "test"=>[ 4 [ 5 "color"=>"red", 6 "type"=>"a" 7 ], 8 [ 9 "color"=>"red", 10 "type"=>"b" 11 ], 12 [ 13 "color"=>"blue", 14 "type"=>"c" 15 ] 16 ] 17]; 18$color = filter_input( INPUT_POST, "color" ); 19?> 20<p><?php echo $color; ?></p> 21<p><?php echo 'ajax' ?></p>
試したこと
上記のコードでNoticeが出てしまいます。
<p><?php echo 'ajax' ?></p>
こちらの方が正常に"ajax"というテキストが表示されています。
ご教示のほど宜しくお願いします。
追記
一部修正しました。
また、
php
1$color = filter_input( INPUT_POST, "color" ); 2// を書きにしたところ正常にtestと表示されました。 3$color = 'test';
回答2件
あなたの回答
tips
プレビュー