2011-06-20 6 views
0

JavaScriptの関数(Ajax)を実行するために、whileループ内でmysql_fetch_arrayの特定の数値結果を使用しようとしています。次のように私のPHPコードの基本的なスニペットは、次のとおりです。次のように私のJavascriptコードのMySqlフェッチ配列とAjaxを使用してクリック可能なリンクを作成する

while ($data = mysql_fetch_array($result)) 
{ 
$link = $data['id']; //example results will be 12345 
echo '<span id="val" onclick="goto()">'.$link.'</span>'; //lists 12345, and makes each clickable 
} 

一部は次のとおりです。

function goto(str) 
{ 
    Ajax... 
    var idval = document.getElementById('val').innerHTML; //grabs 1,2,3,4, or 5 based on which number was clicked 
    Ajax... 
} 

私がここでやろうとしていますどのようなMySQLからのクエリ複数のレコードで、一覧表示結果をwhileループを使用して、各結果をクリック可能にし、内部HTMLをAjaxの変数に渡します。

私の問題は、whileループリストから結果をクリックすると、mysqlフェッチ配列の最初の結果だけを渡すことです。たとえば、whileループは12345を表示します.3をクリックすると、内部HTMLとして1が取得されます。 5をクリックしようとすると、内部HTMLとして1が得られます。等々...常に最初の結果が得られます。

mysqlフェッチ配列を爆発的に分解しようとしましたが、内側のhtmlは常に配列結果の最初の行になります。配列を何とか分割する必要があるので、各行は視覚的にではなく独立していますが、プログラムではgetElementById.innerHTMLを使用して取得できます。

本当にありがとうございます。あなたの提案とうまくいけば答えは本当に私のPHPプロジェクトをはるかに役立つようになります。

答えて

1

まず、このように見えるようにあなたのPHPスクリプトを変更します。

while ($data = mysql_fetch_array($result)) 
{ 
    $link = $data['id']; //example results will be 12345 
    echo '<span id="val'.$link.'" onclick="goto('.$link.')">'.$link.'</span>'; 
} 

すると、次のJavaScriptコードを使用します

function goto(link) 
{ 
    Ajax... 
    var idval = document.getElementById('val'+link).innerHTML; 
    Ajax... 
} 

しかし、私はstrがあなたのJavaScriptコードで何を意味し、なぜ楽しいのかは分かりません引数gotoは引数なし(onclick="goto()")で呼び出されている間に1つの引数(str)を受け取ります。

+0

こんにちはdevelroot - あなたロック!あなたの提案はうまくいった。あなたの変更に応じて、関数goto(link、str)を追加しました。 (str)はajaxを指します:url = url + "?q" + str;ありがとうございました! – user175328

1

問題は、スパン要素でid = "val"を使用することです。だから、最初の要素しか得ることができませんでした。だからあなたはいつもファースト・スパンの内側のhtmlを得ることになります。

最も単純な解決策は、goto関数呼び出しに引数としてid値を渡すことです。

更新:あなたは以下のように、あなたの関数をモディファイことがあります。

function goto(link) 
{ 
    Ajax... 
    var idval = link; 
    Ajax... 
} 
+0

こんにちはdomx - あなたの提案に感謝します。あなたは次のようなことを言っていますか?onclick = goto( '。$ link。')?私はこれを試みたが、私はJavaScriptの関数から値を取得する方法を知らない。私はgetElementBy属性しか知りません。 – user175328

関連する問題