AIと戦って、あなたの人生のリスク診断 >>

javascript、データベース、SQL等を現在勉強中なのですが
現在製作していることの
プログラムというかアルゴリズム?がどうしてもうかびません。

まずはじめにあるページを表示させ、そのページに検索ボタンがあります。
検索ボタンを押すとDIVウィンドウが表示され。そこに検索条件を入力
決定のボタンで検索後、検索結果がDIVウィンドウ内に10だけ件表示されます。
検索結果が11以上ある場合は、よくある検索サイトのように
ページ1、ページ2にと、それもDIVウィンドウ内にボタンを表示させ
そのページ2のボタンを押したら、11件目からまた10件を表示
というような物を考えています。

プログラムの一部は流用していて
divウィンドウを表示、検索条件を指定検索、一番初めの結果の表示
検索結果の数によるページボタンの表示まではできています。

そこから、ページボタンを押した次の処理を
遷移なしにどのようにやればよいのかがおもいうかびません。

ページボタンが押されたら、検索条件と押されたボタンの値を
location.href = pagename.sqlfile?id=1234&page=2
のようにして、SQLが記述されたファイルに飛ばして
処理をさせるのかなと思ったのですが
あっさりとページ遷移してしまいます・・・
何かヒントを教えていただけませんでしょうか・・・

プログラムについては初心者で
言葉の使い方等が間違っていたら申し訳ありません。
よろしくお願いします。

このQ&Aに関連する最新のQ&A

A 回答 (6件)

<html>


<body>
<script>
a="[ {'ID':'1' ,'AGE':'21' ,'NAME':'testname' },{'ID':'2' ,'AGE':'20' ,'NAME':'test2name' }]";
d=eval(a);
alert(d[1].NAME);
</script>
</body>

この回答への補足

即答ありがとうございます!!

上記の例、ためさせていただきました
>a="[ {'ID':'1' ,'AGE':'21' ,'NAME':'testname' },{'ID':'2' ,'AGE':'20' ,'NAME':'test2name' }]";

ただ上記の部分がきめうちになってしまうので
a = xmlHttp.responseText;
d = eval(a);
alert( d[1].NAME);
のようにやってみたのですが、アラートでは「undefined」
と表示されてしまいました・・・

>a="[ {'ID':'1' ,'AGE':'21' ,'NAME':'testname' },{'ID':'2' ,'AGE':'20' ,'NAME':'test2name' }]";
この行は他の方法がありますでしょうか?

補足日時:2008/03/27 18:24
    • good
    • 0

alert(xmlHttp.responseText) が、Ano.1の補足と同じになってます?



a=[ 略 ];なら良いのですが、
var a=[ 略 ];
となっていると
d=eval(xmlHttp.responseText)は失敗します。スクリプトエラーで止まると思いますけど。
varがついてたら、 d= を消して、 eval(xmlHttp.responseText); だけ行ってください。
responseTextの中に書かれているvar a=[]の変数名がそのまま使えます。


JavaScriptがわからなければ、PHPで全部やって、<iframe>で表示するとか、
JSONでわからなければ、CSVやTSVにしても良いと思いますけどね。
最も単純な物なら、
行の区切り文字(通常は¥n)で分割した物を、データの区切り文字(通常は , か¥t)で分割するだけですし。


、、、一応説明をすると、
JSON(JavaScript Object Notation)っていうのは、JavaScriptのObjectを書くためのNotation(書式)です。
var a=new Object();
a.ID='0';
a.NAME='testname';
var a={ID:'0',NAME:'testname'};
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

プログラムは学生のころに授業でやっていた程度なので
基礎の基礎ぐらいしかわかりません。
教えていただいたこともわかる部分とわからない部分があるのですが
さらに勉強を続けて頑張ろうと思います。

ありがとうございました!

お礼日時:2008/03/28 11:48

a = xmlHttp.responseText;


は良いのですが、JSON形式のデータ構造がどうなっているかの
わかりません。サンプルで提示されたものを1行にしただけですよ。

受け取った文字列をevalで変数として受け取るのですが
吐き出す側も、受け取る側もき正しい形式として処理しないと
経験上、苦労します。というか苦労しました。
ちなみに私は速度優先なのでJSONはどうも・・・
    • good
    • 0
この回答へのお礼

返事が遅くなりすみません。

教えていただいたコードを試してみたのですが
その時に些細なミスをしていて、動かなかっただけでした^^;
evalってのがポイントなんですね。

自分のレベルが低すぎるので、今読んでるのはほとんど入門書なのですが
そこでのevalの説明が
「フォームなどを参照して受け取った文字列を、数値として解釈する。」
a = "5 * 2 - 1"
であれば、A=9 になる。とまでしか説明がないので・・・

今読んでいる本は大分理解できてきたので
もう一歩踏み込んだ参考書を購入して、さらに勉強したいと思います。
この先、進めなくなった時にまた書き込むことがあると思いますが
どうぞよろしくお願いします。

ありがとうございました!

お礼日時:2008/03/28 11:42

Da = [


{'ID':'1' ,'AGE':'21' ,'NAME':'testname'},
{'ID':'2' ,'AGE':'20' ,'NAME':'test2name'}
]
alert( Da[0].NAME )



function F(arg){
for(var i=0; i<arg.length; i++){
//arg[i].AGE と arg[i].NAME
}
}

F([
{'ID':'1' ,'AGE':'21' ,'NAME':'testname'},
{'ID':'2' ,'AGE':'20' ,'NAME':'test2name'}
])

など。
    • good
    • 0
この回答へのお礼

回答ありがとうございました。

今後の参考にさせていただきます。

お礼日時:2008/03/28 11:44

PHP 再帰処理


も悪くないけれど やりたい事の殆どは多分「ajax」で引いた方が速いんじゃないかな。
その中にPHP再帰処理も出てくると思うよ

この回答への補足

お返事ありがとうございます。

PHPとは違うプログラムを使っていたのですが
遷移することなく、データをとってくることだけはできました!ただ・・・
取得したデータが途中でJSON型?表記?のようになっており
そこから個別のデータを抜き出す方法がわかりません。

No1さんの補足に
取得したデータの形を補足しましたので
もしよろしければ、回答をお願いいたしますm(_ _)m

補足日時:2008/03/27 17:18
    • good
    • 0

PHPと連携して再帰処理をすればいいのではないでしょうか?


「PHP 再帰処理」と検索をすればサンプルプログラムも検索できます。

この回答への補足

早々のお返事ありがとうございます!
PHPではなく、他のプログラムをしていまして・・・

なんですが、あの後いろいろいじっていると、なんとか遷移することなく
データをとってくることはできました!!
xmlHttp.open( "GET", URL );
xmlHttp.send( null );
こんな感じでいけました。
ただ・・・それがJSON? という形のデータに変換してしているようで
[
{
'ID':'1' ,'AGE':'21' ,'NAME':'testname'
},
{
'ID':'2' ,'AGE':'20' ,'NAME':'test2name'
}
]

取得したデータは上のような形です。ここから
ID1の AGE と NAME を取得するにはどうしたらよいのでしょうか?
alert( xmlHttp.responseText.AGE[1] );
このような感じでやってみたのですが、これでは
プロパティーがないよ!みたいなエラーがでてしまいました。
match や、indexofを駆使して、個別に取得していくしか方法はないでしょうか?

質問内容が変わってしまいましたが
ここがわかると、希望の光がみえますので
どうぞよろしくお願いしますm(_ _)m

補足日時:2008/03/27 17:08
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


人気Q&Aランキング