2013-12-08 4 views
0

현재 선택 필드는 courses_selection_list이라는 mysql 테이블의 값에서 채워진 양식으로되어 있습니다. 이 표는 course_idcourse_name입니다. 코스 카탈로그처럼 작동합니다. courses_by_academy이라는 두 번째 테이블이 있습니다. 이 테이블에는 course_acad_id이라는 고유 한 AI 필드와 두 개의 외래 키 academy_idcourse_id이 있습니다. 선택 쿼리를 사용하여 courses_by_academy에서 academy_id = 15 값을 가져오고 선택 필드를 통해 그 결과를 표시하려고합니다. EXAMPLEmysql 값으로 동적 선택 필드 채우기

<script> 
$(document).ready(function() { 
var option = $('#courses_offered').val(); 
showFields(option); 

    function showFields(option){ 

     var content = ''; 
     for (var i = 1; i <= option; i++){ 
      content += '<div id="course_'+i+'"><label>Course # '+i+'</label><br /><label>Course Name:</label> <select id="coursename_'+i+'" name="coursename_'+i+'"><option value="">--- Select ---</option>"' 
        <?php 
         $course_query = $db_con->prepare("SELECT course_id, course_name FROM courses_selection_list;"); 
         $course_query->execute(); 
         $data = $course_query->fetchAll(); 
         foreach ($data as $row){ 
          //dropdown values pulled from database 
          echo 'content += \'<option value="' . $row['course_id'] . ':'.$row['course_name'].'">' . $row['course_name'] . '</option>\';'; 
         } 
        ?> 
      '"';     

     content += '</select></br>Class Start Date: <input type="text" id="start_date_' + i + '" name="start_date_' + i + '" class="datepicker" />Class End Date: <input type="text" id="end_date_' + i + '" name="end_date_' + i + '" class="datepicker" /><div>'; 

     } 
     $('#course_catalog').html(content); 
     $('#course_catalog').find(".datepicker").datepicker({dateFormat: "yy-mm-dd"}); 
    } 
}); 
</script> 

HTML

<strong>How many courses offered?</strong> 
<select name="courses_offered" id="courses_offered"> 
    <?php 
    $db_select2 = $db_con->prepare(" 
     SELECT  a.academy_id 
     FROM  academy a 
     LEFT JOIN courses_by_academy ca ON a.academy_id = ca.academy_id 
     WHERE a.academy_id = :id 
     "); 
    if (!$db_select2) return false; 
    if (!$db_select2->execute(array(':id' => $id))) return false; 
    $courses_count = $db_select2->rowCount(); 
    echo "<option value=\"$courses_count\" selected=\"selected\">$courses_count</option>"; 
    ?> 
</select> 
<div id="course_catalog"></div> 

courses_selection_list :

+-----------+--------------+ 
| course_id | course_name | 
+-----------+--------------+ 
|   1 | Biology  | 
|   2 | Calculus  | 
+-----------+--------------+ 

courses_by_academy :

+----------------+------------+------------+--------------+-------------------+-----------------+ 
| course_acad_id | academy_id | course_id | course_name | course_start_date |course_end_date | 
+----------------+------------+------------+--------------+-------------------+-----------------+ 
|    1 |   15 |   1 | Bilogy  | 2012-11-20  | 2012-12-20  | 
|    2 |   15 |   2 | Calculus  | 2012-11-20  | 2012-12-20  | 
+----------------+------------+------------+--------------+-------------------+-----------------+ 
+0

너 데있어? 숙제 문제입니까? – Zarathuztra

+0

나는'showFields (option)'함수가 onchange로 트리거되어야한다고 가정합니다. –

+0

@ Joke_Sense10 yes. 처음에는 그랬다. html의 쿼리는'academy_id = 15'의'courses_by_academy'에있는 행의 수를 검색 한 다음 값을 기반으로 선택된 필드를 표시합니다. 이제 선택 필드 안에 선택된 값으로 저장된 값을 표시하려고합니다. – techAddict82

답변

0

이,321 제거 0 코드와는 별도의 PHP 파일에 붙여 넣기이 아약스를 통해 파일을 액세스하고 변수 content .Try에 대한 응답을 추가합니다

function showFields(option){ 

    var content = ''; 
    for (var i = 1; i <= option; i++){ 
     content += '<div id="course_'+i+'"><label>Course # '+i+'</label><br /><label>Course Name:</label> <select id="coursename_'+i+'" name="coursename_'+i+'"><option value="">--- Select ---</option>"' 

     var data = $.ajax({ 
     type: "POST", 
     url: "demo.php", 
     data: { value : option} 
     }).responseText); 

      content +=data; 

content += '</br>Class Start Date: <input type="text" id="start_date_' + i + '" name="start_date_' + i + '" class="datepicker" />Class End Date: <input type="text" id="end_date_' + i + '" name="end_date_' + i + '" class="datepicker" /><div>'; 

    } 
    $('#course_catalog').html(content); 
    $('#course_catalog').find(".datepicker").datepicker({dateFormat: "yy-mm-dd"}); 
} 

Demo.php을 : 정확한 문제가 무엇입니까

<?php 
$course_query = $db_con->prepare("SELECT course_id, course_name FROM courses_selection_list;"); 
    $course_query->execute(); 
    $data = $course_query->fetchAll(); 
     foreach ($data as $row){ 
     //dropdown values pulled from database 
    echo '\'<option value="' . $row['course_id'] . ':'.$row['course_name'].'">' . $row['course_name'] . '</option>\';'; 
     } 
     echo '</select>'; 
?> 
+0

선택 결과가 표시되지 않습니다 – techAddict82

+0

demo.php에 데이터베이스 연결을 포함하고 응답을 잊지 마십시오 .. –

+0

예, 데이터베이스 연결이 설정되었으며 경고를했습니다. 결과를 표시하지만 선택 필드에 표시되지 않음 – techAddict82

관련 문제