2012-01-08 63 views
0

これは私がは、プログラム

http://www.bkstr.com/CategoryDisplay/10001-9604-10311-1?demoKey=d 

これらの値は、ドロップダウンしているに取り組んでいますURLであるドロップダウン値を選択するすべての(一定の)

あなたの用語を選択:2012年春(定数))

検索するコースIDまたは部門を選択:値のリストが含まれています(私のプログラムからこの値を1つずつ選択する必要があります)

前のドロップダウンで選択した内容に基づいて、「コースIDで検索するか、あなたのコースを選択する」ドロップダウンが表示されます。

これは私が自動化しようとしている部分です。

  • たびにいくつか:

    まあ、クリックすると、私はURLここ

    http://www.bkstr.com/webapp/wcs/stores/servlet/CourseMaterialsResultsView?catalogId=10001&categoryId=9604&storeId=10311&langId=-1&programId=755&termId=100021416&divisionDisplayName=%20&departmentDisplayName=ADV&courseDisplayName=3001&sectionDisplayName=10182&demoKey=d&purpose=browsea 
    

    私が選択した値はクエリパラメータとして渡されたばかり見ることができますが、これは問題で私を残しを取得し提出します新しい値がドロップダウンリストに追加されました。コードを変更してその値を組み入れる必要があります

私はどのようにプログラム的におおよその部&それは私のクエリパラメータの前に値をハードコーディングせずに後続のコースですか?どんな指導?

答えて

0

あなたの部門のインデックスに対応するJS配列の形式でデータベースからページにリストコースを "エコー"する必要があります。配列は0からカウントを開始するので、部門の値も0から始める必要があることに注意してください。このコードはhtmlの先頭に置く必要があります。

var courses = [ 
    ["course1-1","course1-2","course1-3","course1-4","course1-5"], 
    ["course2-1","course2-2","course2-3","course2-4","course2-5"], 
    ["course3-1","course3-2","course3-3","course3-4","course3-5"] 
]; 

、その後、JavaScriptを使用して、あなたの<select>のイベントリスナーを追加します。あなたはこのHTMLを持っていると言っています

<select id="departments"> 
    <option value="0">dept1</option> 
    <option value="1">dept2</option> 
    <option value="2">dept3</option> 
</select> 

<select id="courses"></select> 

jQueryの場合、あなたのリスナーはこのようになります。以前の選択値を取得し、それに基づいて別の選択を作成する必要があります。 (それがPHPを実行するものと同じサーバーである必要はありません)を使用すると、GUIを使用してサーバーへのアクセス権を持っていると仮定すると、http://jsfiddle.net/z5GTX/1/

1

利用のSelenium RC:

$(document).ready(function(){ 


function setCourses() { 
    var departmentValue = $('#departments').val(); 
    var courseOptions = ""; 
    for (i = 0; i < courses.length; i++) { 
     courseOptions += "<option value=" + i + ">" +courses[departmentValue][i] + "</option>"; 
    } 
    $("#courses").html(courseOptions); 
} 

$('#departments').change(function() { 
    setCourses(); 
}); 

setCourses(); 

}); 

はここフィドルです。 PHPを使用すると、ブラウザを開いてクリックや他のページとのやりとりをシミュレートすることができます。

http://seleniumhq.org/projects/remote-control/

あなたはGUIを使用してサーバーへのアクセスを持っていない場合は、RhinoのかNodeJSようなもので、サーバー側のJavaScriptを実行する必要があります。