
jQuery,Ajaxでcgiに接続する方法がわからなくて困っています。
あるデータベースのあるテーブル(仮にpersonテーブル)を参照して、html上のformタグに文字を入れるとselectボックス内に表示されるものがマッチしたものが表示されるようなものを作りたいと思っています。
例えば、
personテーブルのperson_nameカラムには(秋本、本田、寺西、寺本、戸田、吉岡)という情報が入っていて、selectボックス内は最初全ての人名が出ているとします。
person.htmlというテンプレートのformのところに【寺】と入力するとselectボックス内は寺西と寺本だけ表示される。
そのようなものを作りたいと思っていますがうまくいきません。何か参考になるURLだけでもかまいませんのでご教授下さい。
できればサンプルソースがあればうれしです。
No.2ベストアンサー
- 回答日時:
とりあえずjQueryのサンプルです。
(cgiがperlでなくPHPで申し訳ない)
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="ja-JP">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta http-equiv="Content-Script-Type" content="text/javascript">
<script type="text/javascript" charset="utf-8" src="/jslib/jquery-1.4.2.min.js"></script>
<script type="text/javascript" charset="utf-8">
<!--
$(function(){
$("#search_name").keyup(function(){
if(!$(this).val()) return false;
console.log($(this).val());
$.ajax({
type: "POST",url:"/hogehoge.php?",dataType:"json",
data:{"search_name":$(this).val()},
success:function(data){
$('#person').empty();
for(var i=0;i<data.length;i++){
var option=$("<option>");
option.val(data[i]);
option.text(data[i]);
$('#person').append(option);
}
},
error:function(XMLHttpRequest,status,errorThrown){
alert(XMLHttpRequest.url + ":"+ status);
}
});
});
});
// -->
</script>
<body>
<body>
<form>
<input id="search_name" type="text" value="">
</form>
<select name="person" id="person">
<option value="秋本">秋本<option value="本田">本田<option value="寺西">寺西
<option value="寺本">寺本<option value="戸田">戸田<option value="吉岡">吉岡
</select>
</body>
</html>
cgi(PHP)側のサンプル
<?php
header("Content-type:text/javascript");
mb_language("japanese");
mb_internal_encoding("UTF-8");
mb_http_output("UTF-8");
if(isset($_POST['search_name'])){
/*
ここにDB検索処理を記述
「$_POST['search_name']をキーにして読み込んだデータを
配列変数$dataに格納する。」
*/
$data= array("寺西","寺本"); //テスト用サンプル
echo json_encode($data);
}
?>
No.1
- 回答日時:
まずは、やり方を...
「formのところに【寺】と入力すると」
の部分は、onkeyupのイベントでajaxを起動することにします。
ajaxでjson形式のテキストを返してもらって、それでselectボックスの
<option>たちを作り直せばよいです。
cgi側のDBを読む処理は、そちらのカテゴリーで聞いてみてください。
そもそもDBって何ですか?cgiはPerlですか?
PHP+MySQLなら、サンプル提示出来そうですが...
ありがとうございます。phpのサンプルは見つけてperlで試しているんですが、うまくいかないので質問させていただきました。
cgiはperlです。
とりあえず、perl側での受け取り方とperl側からの送信方法さえわければ問題ないのですが…。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
入力フォームの値をQRコードで...
-
PDFを(htmlのように)無限に縦...
-
バッチファイル 特定ウインドウ...
-
正規表現で、特定の文字列を含...
-
1枚の画像をクリックすると複数...
-
ワードでA3横の画面にして、文...
-
jQueryを使いformでsubmitした...
-
Ajaxでsessionにいれた値が引き...
-
VBA コンボボックスの値をスピ...
-
b75h2-m2 biosアップデートした...
-
php コールバック関数
-
ナイトボットのAliasについて
-
これってなんの電話かわかりま...
-
VBAでクイズゲームの作り方
-
以下のURL入れますか?皆さんは↓
-
画像のドットの部分が抜けてい...
-
Chinapost こよパズルどう動か...
-
非同期通信で掲示板を作る際の...
-
非同期通信を使うタイミングが...
-
PYTHONのtkinterについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
JavascriptからPHPへのAjax通信...
-
jQuery を外部ファイルから呼び...
-
jQueryで外部テキストファイル...
-
jQueryを使いformでsubmitした...
-
AJAX+PHPでセレクトボックスの連動
-
Ajax サーバーに負荷かかります...
-
jQueryのblockUIをformのボタン...
-
ajaxを使ったページがSEOで不利...
-
ajaxでPHPにPOST送信して結果デ...
-
ajax + PHPによるエラーの返し...
-
ajaxでPHPにPOST送信して結果デ...
-
ajaxからphpにpsotしたときの日...
-
jquery,ajaxによるphp通信でnull
-
Ajax を Fetch API に 書き換え...
-
IE8 form action属性をはずす...
-
JQueryの変数の扱いで弱ってい...
-
Ajaxでフォームデータを連続登...
-
jQuery3 reset()が効かない。
-
jqueryでAJAX非同期通信をしてp...
-
Ajax・jQueryでGETとPOSTする方法
おすすめ情報