2011-09-29 40 views
0

首先...我一直試圖在過去的3個晚上自己解決這個問題......我查看了與我的類似主題的帖子,但沒有遇到可幫助我的答案......我有點新的AJAX & JS,但不是新的網絡編程...AJAX腳本中未捕獲的引用錯誤

我有一個標準的汽車選擇列表...一個選擇列表流入另一...

選擇年份它給出了一個選擇製造列表,選擇製造並獲得一個選擇列表模型選擇一個模型&得到一個選擇列表的修剪樣式...很常見的東西真的...

我有腳本來做所有這些(發現它在線)它涵蓋了一年。使&模型部分...我不得不添加額外的位來做修剪...一切工作,因爲它應該下來,直到我得到修剪部分(我的部分:))。

當我選擇模型(當時應該給我一個適當的微調列表)我在Chrome的錯誤控制檯收到以下錯誤:

「未捕獲的ReferenceError:未定義雪佛蘭 (匿名函數) 平變化「

什麼使這個混亂我通過比較我讀過其他類似的主題是,‘雪佛蘭’是進行參數 - 不是函數....

我的腳本(您可以識別它...):

<script language="javascript" type="text/javascript"> 

    var xmlhttp=false; 
    try{ 
     xmlhttp=new XMLHttpRequest(); 
    } 
    catch(e) {  
     try{    
      xmlhttp= new ActiveXObject("Microsoft.XMLHTTP"); 
     } 
     catch(e){ 
      try{ 
      xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); 
      } 
      catch(e1){ 
       xmlhttp=false; 
      } 
     } 
    } 

    return xmlhttp; 
} 

function getMake(yearId) {  

    var strURL="/vehicles/getmake/"+yearId+"/"; 
    var req = getXMLHTTP(); 

    if (req) { 

     req.onreadystatechange = function() { 
      if (req.readyState == 4) { 
       // only if "OK" 
       if (req.status == 200) {       
        document.getElementById('makediv').innerHTML=req.responseText;      
       } else { 
        alert("There was a problem while using XMLHTTP:\n" + req.statusText); 
       } 
      }    
     }   
     req.open("GET", strURL, true); 
     req.send(null); 
    }  
} 
function getModel(yearId,makeId) {  
    var strURL="/vehicles/getmodel/"+yearId+"/"+makeId+"/"; 
    var req = getXMLHTTP(); 

    if (req) { 

     req.onreadystatechange = function() { 
      if (req.readyState == 4) { 
       // only if "OK" 
       if (req.status == 200) {       
        document.getElementById('modeldiv').innerHTML=req.responseText;      
       } else { 
        alert("There was a problem while using XMLHTTP:\n" + req.statusText); 
       } 
      }    
     }   
     req.open("GET", strURL, true); 
     req.send(null); 
    } 

} 
function getSub(yearId,makeId,modelId) {   
    var strURL="/vehicles/gettrim/"+yearId+"/"+makeId+"/"+modelId+"/"; 
    var req = getXMLHTTP(); 

    if (req) { 

     req.onreadystatechange = function() { 
      if (req.readyState == 4) { 
       // only if "OK" 
       if (req.status == 200) {       
        document.getElementById('trimdiv').innerHTML=req.responseText;      
       } else { 
        alert("There was a problem while using XMLHTTP:\n" + req.statusText); 
       } 
      }    
     }   
     req.open("GET", strURL, true); 
     req.send(null); 
    } 

} 

在各個功能頁面的refereneced HTML分別是: 的化妝:

<label for="make" class="select">Make_ch:</label> 
<select placeholder="Select a Year First" name="make" id="make" autocapitalize="off" autocorrect="off" autocomplete="off" 
onchange="getModel(<?php echo $year ?>,this.value)"> 
    <?php foreach($vehicle_make->result() as $row) 
{ 
    echo '<option value = "'.$row->model_make_id.'">'.$row->model_make_id.'</option>'; 
} 
?>   

的模型:

<label for="model" class="select">Model_ch:</label> 
<select placeholder="Select a Make First" name="model" id="model" autocapitalize="off" autocorrect="off" autocomplete="off" 
onchange="getSub(<?php echo $year ?>,<?php echo $make ?>,this.value)"> 
    <?php foreach($vehicle_model->result() as $row) 
{ 
    echo '<option value = "'.$row->model_name.'">'.$row->model_name.'</option>'; 
} 
?>   

的裝飾:

<label for="trim" class="select">Trim_ch:</label> 
<select placeholder="Select a Model First" name="trim" id="trim" autocapitalize="off" autocorrect="off" autocomplete="off"> 
    <?php foreach($vehicle_trim->result() as $row) 
{ 
     echo '<option value = "'.$row->model_trim.'">'.$row->model_trim.'</option>'; 
} 
?>   

就像我說的......這一年,品牌,型號部分正確工作......我已經驗證該裝飾選擇列表將顯示它是什麼假設如果它收到所有正確的參數...

有人有什麼我失蹤?

在此先感謝....拉斯

在HTML模型部分
+0

嗨如果您有正確的答案,請將其表決並標記爲正確答案 –

回答

0

,你應該把「之間的」你的PHP代碼。例如:

onchange="getSub('<? php echo $year ?>','<?php echo $make ?>',this.value)"> 
+0

完美...謝謝! ..具體來說,任何不是數字的......我應該知道...概念在PHP中是一樣的。 – user971053