2012-02-13 20 views
0

私は午後すべての問題を修正しようとしていました。私は今朝jQueryを学び始めましたが、この関数を働かせようとしていましたが、それはその諺に少しの苦痛を証明していました...jQueryとxmlを使用して、別の選択リストのインデックスに基づいて選択リストを設定する

私は値をもとにモデル選択リストに値を設定しようとしています

$(document).ready(function() 
{ 
    $('#make').change(function(){ 
     alert('Changing'); 
     $('#model option').remove(); 
     $('#model').attr('disabled',true);    
     $.ajax(
     { 
      type: "GET", 
      url: "../xmlsource/models/model-"+$('#make option:selected').val()+".xml", 
      dataType: "xml", 
      success: function(xml) 
      { 
       alert('XML'); 
       $(xml).find('model').each(function() 
       { 
        var name = $(this).attr('name'); 
        var value = $(this).attr('value'); 
        $('#model').append("<option value='"+value+"'>"+name+"</option"); 
        alert('Cycling'); 
       }); 
      } 
     });     
     $('#model').removeAttr('disabled'); 
    }); 
}); 
:A

私のjQueryの関数は次のようになり、選択リストを作成します

私のテストxmlファイルは次のようになります。

<?xml version="1.0" encoding="utf-8" ?> 
<models> 
<model name="--Please Select--" value="0"> 
<model name="A1" value="1"> 
<model name="A2" value="2"> 
</models> 

私のHTMLは次のようになります。私はできる限りの機能をテストしてみた

<form method="post" action="seller.php"> 
<table border="0"> 
    <tr> 
     <td>Make</td> 
     <td> 
      <select name='make' id="make"> 
      <?php 
       $manufacturers = simplexml_load_file('../xmlsource/makes.xml'); 
       foreach($manufacturers->xpath('//manufacturer') as $manufacturer) 
       { 
        if(isset($trimmed['make'])) 
        { 
         if ($trimmed['make'] == "$manufacturer->value") 
         { 
         ?> 
         <option value="<?php echo "$manufacturer->value";?>" selected="selected"><?php echo "$manufacturer->name"?></option> 
         <?php 
         } 
         else 
         {   
         ?> 
         <option value="<?php echo "$manufacturer->value";?>"><?php echo "$manufacturer->name"?></option> 
         <?php 
         } 
        } 
        else 
        { 
        ?> 
        <option value="<?php echo "$manufacturer->value";?>"><?php echo "$manufacturer->name"?></option> 
        <?php 
        } 
       } 
      ?>  
      </select> 
     </td> 
    </tr> 
    <tr> 
     <td>Model</td> 
     <td> 
      <select name="model" id="model">         
      </select> 
     </td> 
    </tr> 
</table> 
<div align="center"><input id="button" type="submit" value="Create My Listing"></div> 

、それはXMLをロードしていますファイルは正常に終了しましたが、最初のアラートにしか当たっていませんが、成功した条件コードを入力していないようです。私の謝罪はこれが素朴だと思われますが、問題についてほとんど経験をしていません。

すべてのヘルプは大幅に

種類が ハービー

答えて

0

についていただければ幸い私はそれがこのjsFiddleでの作業を取得することができました(URLやデータのパラメータはjsFiddleに固有であることに注意してください - あなた自身のURLを使用すると、データノードを削除してください)。私が代わりにGETのPOSTを使用

$('#make').change(function() { 
    $('#model option').remove(); 
    $('#model').attr('disabled', true); 
    $.ajax({ 
     type: "POST", 
     url: "/echo/xml/", 
     data:{ 
      xml:'<?xml version="1.0" encoding="utf-8" ?><models><model name="--Please Select--" value="0" /><model name="A1" value="1" /><model name="A2" value="2" /></models>'}, 
     dataType: "xml", 
     success: function(xml) { 
      $(xml).find('model').each(function() { 
       var name = $(this).attr('name'); 
       var value = $(this).attr('value'); 
       $('#model').append("<option value='" + value + "'>" + name + "</option"); 
      }); 
       $('#model').removeAttr('disabled'); 
     } 
    }); 
}); 

注:ここでは

は、私が使用jQueryのです。また、すべてのXMLモデルノードを自動的に閉じる必要がありました。

+0

jQueryはちょっと変わっているかもしれないと言われているので、多くの多くのありがとうございました、その作業は治療です。ちょっと不思議で、質問に無礼だと思いませんか?これは本当ですか? – BarryH1987

+0

完全にうまくいくはずです。また、これで問題が解決した場合は、その解決策を検討するようにしてください。ありがとう。 – j08691

+0

謝罪は受け入れられた答えのチックを見なかった、多くのおかげで再び、大いに感謝する – BarryH1987

関連する問題