2011-12-27 3 views
0

私はこのように、いくつかのデータを返すPHPファイル、上のAJAX要求を持っている:このデータをJQueryまたはJavaScriptでPHPからエコーする方法

21-12-12 :::訪問; 45件の;;ページビュー、344 --- 22-10-10 :: :訪問数; 71;ページビュー数; 34 --- 15-01-11 :::訪問数; 4 ;;ページビュー数; 30

パターンに注意してください^^多次元配列のようですが、文字列。

私はその文字列を区切る方法が必要で、各日付の訪問数とページビュー数を使用します。

私はすでにJQueryで文字列を分割する方法を知っていますが、その文字列から特定の日付の訪問の値を取得する方法はわかりません。たとえば、訪問の日付を15-01- 11。

どのような提案やより良い選択肢が素晴らしいでしょう。 JSONは言及しないでください。私はそれをあきらめました。

おかげ

+1

ここでStackOverflowでは '^^' smilieは使用しません。特にそれが全く合わないときは特にそうではありません。 – ThiefMaster

+0

@ThiefMaster「smilie」ではないと思っていたので、その文章で話している文字列を指す矢印になっていたはずです。しかし、大丈夫、私はもう一度やりません。 –

+0

ああ、私はほとんどの人が単なる '^'として使うと思う。少なくともドイツでは、ほとんど誰もが(^私を含む)smilieの方法をあまりにも頻繁に使っています:p – ThiefMaster

答えて

3

JSON あなたはPHPとjQueryを使用しているので、代替と非常に簡単です。実際には、他のすべては、あなたがやりたいような文字列の解析や、JSONの代わりにXMLを使用するなど、はるかに複雑です。

あなたのPHPコードでは、単にecho json_encode($arrayWithYourData);であり、あなたのAJAX成功コールバックの応答引数には同じオブジェクトが含まれています。

特定の日付のデータを取得したいので、データを配列キーとして使用することができます。 response['01-01-01']を使用して対応する配列要素にアクセスします。

+1

+1 JSONは実際にはもっと良い(そして方法クリーナー)オプションです。 – techfoobar

+0

私はdocument.write(レスポンス['some_date'])を試しました。それは何も返さなかった。また、document.write(response);もまだ試してみました。多次元配列が正しく設定されます(ダブルチェック後)。私はJSONを一日中働かせようとしていて、結局はあきらめました。しかし、それがあなたの言っているほど簡単ならば、私は別のショットのために起きている。 –

+0

デバッグを行うには、ブラウザの開発ツール(firefoxでは、firebugをインストール)を使用してから、console.log(response);を使用してオブジェクトの構造を確認します。 'alert'と' document.write'はデバッグには向いていません。特に、DOMが完全にロードされた後にドキュメント全体が消去されます(非同期のajaxリクエストが終了したときのようです)。あなたのJSを示す新しい質問を作成し、JSONをどのように出力するのかを知りたいのであれば、すぐに助けを得ることができます。 – ThiefMaster

2

あなたは、変数の名前の文字列で使用できる上記の文字列を持っていると仮定すると、あなたが行うことができます:

var parts = string.split('---'), visits = 0, pageviews = 0; 
for(var i=0; i<parts.length; i++) { 
    if(parts[i].indexOf('01-01-01')!=-1) { // ex: looking up 01-01-01 
    parts = parts[i].split(':::')[1]; 
    parts = parts.split(';;'); 
    visits = parts[0].split(';')[1]; // visits for 01-01-01 
    pageviews = parts[1].split(';')[1]; // pageviews for 01-01-01 
    } 
} 
0

あなたは、出力形式を制御していますか?そうであれば、JSONに切り替えます。それ以外の場合は、RegExでデータを分割します。