2012-03-14 18 views
0

このAjaxリクエストの結果、JavaScript hintArrayを記入したいと思います。つまり、hintArrayには$rowと同じ値が含まれています。これは簡単な方法で行うことができますか? PHPファイルの出力はどのように行うべきですか? hintArray = JSON.parse(this);は正しいですか?PHP配列からJavaScript配列へのAjaxリクエスト

感謝

はJavaScript

var hintArray = new Array(); 
postAjaxRequestFunktion(minFunktion, 'getHint.php', 'id =1') 
function minFunktion() 
{ 
    hintArray = JSON.parse(this); 

} 

function postAjaxRequestFunktion(minFunk,minUrl, mittArg) 
{ 
    var contenttype = 'application/x-www-form-urlencoded' 
    var minRequest  = new skapaAjaxObjekt(minFunk) 
    if (!minRequest) return false 
    minRequest.open('POST', minUrl, true) 
    minRequest.setRequestHeader('Content-type', contenttype) 
    minRequest.setRequestHeader('Content-length', mittArg.length) 
    minRequest.setRequestHeader('Connection',  'close') 
    minRequest.send(mittArg) 
    return true 
} 

function skapaAjaxObjekt(minFunk) 
{ 
    try  { var minRequest = new XMLHttpRequest()     } 
    catch(e1) { try { minRequest = new ActiveXObject("Msxml2.XMLHTTP") } 
    catch(e2) { try { minRequest = new ActiveXObject("Microsoft.XMLHTTP") } 
    catch(e3) { minRequest = false }}} 
    if (minRequest) minRequest.onreadystatechange = function() 
    { 
     if (this.readyState == 4 && this.status == 200 && 
      this.responseText != null) 
      minFunk.call(this.responseText) 
    } 

    return minRequest 
}  

getHint.php

$result = mysql_query("SELECT hint01,hint02 FROM main WHERE id = '00000001'"); 
if (!$result) { 
    echo 'Could not run query: ' . mysql_error(); 
    exit; 
} 
$row = mysql_fetch_row($result); 

答えて

1

あなたは

json_encode($your_array); 
を使用してPHPの配列をエンコードする必要があります

とevalを

your_js_array = eval('(' + yourJSONtext + ')'); 
+0

とJavaScriptでそれをデコードし、私は.phpのファイルにこれを追加しました: エコーjson_encode($行)。 これはJS: 関数です。minFunktion() { hintArray = eval( '(' + this + ')'); \t } しかし、動作しません。 JS配列は空です。私は間違って何をしていますか? I代わりにJSにこれを追加した場合: 関数minFunktion() これはヒント素子に書き込まれる{ のdocument.getElementById( 'ヒント')のinnerHTML =この 。}: [ "hintText1"、」hintText2" ] – Fred

+0

に「this」の値がありますか? console.info(this)を使用します。またはconsole.info(this.responseText);あなたは何かを受けていますか? –

+0

私は間違いを犯しましたが、それを修正して、あなたのソリューションは完全に機能します。この簡単な解決方法を教えてくれてありがとう! – Fred