2013-09-24 93 views
0

我有一個腳本從腳本php中獲取選項,以填充主頁上的下拉列表。PHP填充與jquery下拉框

這裏的JavaScript的

<script> 
    //# this script uses jquery and ajax it is used to set the values in 
      $(document).ready(function(){ 
       //# the time field whenever a day is selected. 
       $("#day").change(function() { 

         var day=$("#day").val(); 
         var doctor=$("#doctor").val(); 

         $.ajax({ 
          type:"post", 
          url:"time.php", 
          data:"day="+day+"&doctor="+doctor, 
          dataType : 'json' 
          success: function(data) { 
           //# $("#time").html(data); 
           var option = ''; 
           $.each(data.d, function(index, value) { 
            option += '<option>' + value.timing + '</option>'; 
           }); 
           $('#timing').html(option); 
          } 
         }); 
        }); 
      }); 
    </script> 

這裏的PHP腳本從數據庫中獲取數據。

<?php 
    $con = mysqli_connect("localhost","clinic","myclinic","myclinic"); 

    // Check connection 
    if (mysqli_connect_errno()) 
    { 
     echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
    } 

    $doctor = $_POST['doctor']; 
    $day = $_POST['day']; 

    $query = "SELECT * FROM schedule WHERE doctor='" .$doctor."'AND day='" .$day. "'"; 

    $result = mysqli_query($con, $query); 

    //$res = array(); 

    echo "<select name='timing' id='timing'>"; 

    //Initialize the variable which passes over the array key values 
    $i = 0;         

    //Fetches an associative array of the row 
    $row = mysqli_fetch_assoc($result); 

    // Fetches an array of keys for the row.  
    $index = array_keys($row);    

    while($row[$index[$i]] != NULL) 
    { 
     if($row[$index[$i]] == 1) {    
      //array_push($res, $index[$i]); 
      json_encode($index[$i]); 

      echo "<option value='" . $index[$i]."'>" . $index[$i] . "</option>"; 
     } 
     $i++; 
    }  

    echo json_encode($res); 

    echo "</select>"; 

    ?> 

這不起作用。我從控制檯收到一個錯誤,說在線javasrcipt'}'

$("#day").change(function(){ 

我似乎無法找到一個錯誤。

+1

嘗試在代碼中的dataType選項之後添加逗號,並且您的jquery代碼應該沒問題。 –

+0

mysql注入這裏我來... –

+0

我會擔心sqlinjections後,我得到這個工作:) – Ajit

回答

0

那是因爲你沒有在它上面的線逗號......

3

您需要就行添加一個觸發上述錯誤逗號:

dataType : 'json', 
+0

啊,我的壞。它仍然沒有填充列表。你可以看看我的代碼,看看有什麼不對嗎? – Ajit

0

很難說什麼是問題,因爲你把事情混在一起。在JavaScript方面,你期望JSON,但在PHP方面你生成HTML。

使用JSON在服務器和瀏覽器之間發送數據。確保您實際生成有效的JSON並僅生成JSON。

此行不執行任何操作(函數返回值,但不能修改它)

json_encode($index[$i]); 

此行沒有任何意義 - 變量$水庫未初始化;

echo json_encode($res);