2012-04-02 15 views
2

私は自分のフォームに2つのオートコンプリートフィールドを持っています。私は別のmysql_queryと同じコードが他の分野に使用され別の入力値に基づいてjqueryオートコンプリートSQLクエリリスト

$result = mysql_query("SELECT * FROM exercise_strength"); 
$arr_autoCompleteExerciseStr=array(); 
$s=0; 
while($row = mysql_fetch_array($result)){ 
$autoCompleteExerciseStr = "\"".ucfirst($row['exercise'])."\", "; 
$arr_autoCompleteExerciseStr[$s] = $autoCompleteExerciseStr; 
$s++; 
} 

と...

$(function() { 
    var availableTags = [ 
     <?php for($k=0; $k<sizeof($arr_autoCompleteExerciseStr); $k++) {echo $arr_autoCompleteExerciseStr[$k]; } ?> 
    ]; 
    $("#inputExercise").autocomplete({ 
     source: availableTags, 
     minLength: 0 
    }); 
    $("#inputExercise").focus(function(){   
     $(this).autocomplete("search"); 
    }); 
}); 

...次のコードを使用して、最初のフィールドのリストを作成します。私がしたいことは、最初に入力されたものに基づいて2番目のフィールドのリストを変更することです。たとえば、ユーザーが最初のフィールドにChestを入力すると、関連する演習のリストがmy SQLデータベースから選択された2番目のフィールドに表示されます。

これを行うにはどのような方法が最適ですか?

私はページを残して持っていない場合、私は...その後、ユーザーがフォームの残りの部分を補充する必要が原因、

を好むだろう助けてください! :)

- UPDATE - JSONについてのあなたのアドバイス私のコードに基づいて

は次のようになります。

スクリプト:

$(document).ready(function(){ 
    $.post('json_exercise.php', { /**/ }, showExercise, "text"); 
}); 

function showExercise(res){ 
    var list = JSON.parse(res); 
    $("#inputExercise").autocomplete({ 
     source: list, 
     minLength: 0 
    }); 
    $("#inputExercise").focus(function(){   
     $(this).autocomplete("search"); 
    }); 
} 

PHPファイル:

$con = mysql_connect(***); 
if (!$con) {die('Could not connect: ' . mysql_error());} 
mysql_select_db("test", $con); 

$result = mysql_query("SELECT * FROM exercise_strength"); 
$i = 0; 
while($row = mysql_fetch_array($result, MYSQL_ASSOC)) 
    { 
     //add the row to the $chat array at specific index of $i 
     $exercise[$i] = $row['exercise']; 
     $i += 1; 
    } 
echo json_encode($exercise); 

は、今私はちょうどPHPを変更する必要は最初のオートコンプリートフィールドで選択いただきました!に基づいて提出されました。

答えて

3

SQLクエリの結果に基づいてページを終了せずに自動完成したい場合は、AJAXとJSONを調べるとよいでしょう。

また、DBMSとPHPとのインタフェースをとるには、mysql_ *関数の代わりにPDOを使用してください。

+0

ありがとうございます、私は新しいコードで私の質問を更新しました。あなたはそれについて何か入力がありますか? – Virik

関連する問題