2016-10-16 6 views
1

私はCSSフレームワークとしてマテリアライズCSSを使用していますが、私もgoogle/stackoverflowなどで答えを探して1時間を無駄にしていましたが、この問題を解決するための答えが見つからないようです。だから、私がやっていることは、私はここで2を選択するセレクト1の値を渡ししようとしているセレクト1別の選択タグに選択値を渡す

以下の私のコードは次のとおりです。

<select id="Accounts"> 
    <option value="">Choose Account to edit</option> 
    <?php 
     $query = "SELECT * FROM personnel_list WHERE status = ?"; 
     $result = $this->db->query($query, array("Active"))->result_array(); 
     foreach ($result as $row) { 
      extract($row); 
      echo "<option value=\"$id-$name-$position-$status\">$name</option>"; 
     } 
    ?> 
</select> 

セレクト2:

<select id="editPosition"> 
    <option value="">Choose Position</option> 
     <?php 
      $Position = array("Manager", "Supervisor", "Assistant Manager", "Assistant Supervisor") 
      for ($x=0; $x < count($Position); $x++) { 
       echo "<option value=\"$Position[$x]\">$Position[$x]</option>"; 
      } 
     ?> 
</select> 
<label for="editPosition">Position:</label> 

JS:私が試してみました

$("#Accounts").change(function(){ 
var accval = $(this).val().split("-"); 
var id  = accval[0]; 
var name = accval[1]; 
var post = accval[2]; 
var status = accval[3]; 

$("#editPosition").val(post); 
}) 

その他のJSです:

セレクト2レンダリング

<select id="Accounts"> 
<option value="">Choose Account to edit</option> 
<option value="1-John-Manager-Active">John</option><option value="2-Mark-Assistant Manager-Active">Mark</option> 
</select> 

:セレクト1レンダリング

$("#editPosition option[value='"+post+"']").prop("selected", true); 

<select id="editPosition"> 
<option value="">Choose Position</option> 
<option value="Manager">Manager</option> 
<option value="Supervisor">Supervisor</option> 
<option value="Assistant Manager">Assistant Manager</option> 
<option value="Assistant Supervisor">Assistant Supervisor</option> 
</select> 

を私に答え、助ける人のために事前に感謝! Accounts上の変更をリッスンする

+0

レンダリングhtmlを表示します。 – BenG

+0

@GentiSaliuこんにちは、どういう意味ですか? value属性の変数は空ではありません。私はそれらをアラート(1)に入れてチェックしました。問題は私のjsコードにはないようです。 – Akio

+0

@BenGが更新されましたpls – Akio

答えて

2

使用イベントの代表団は、代わりに選択します。

$("#Accounts").on("change", function(){ 
    var accval = $(this).val().split("-"); 
    var id  = accval[0]; 
    var name = accval[1]; 
    var post = accval[2]; 
    var status = accval[3]; 

    $("#editPosition").val(post); 
}); 

を働い例えばthis jsFiddleを参照してください。

マテリアライズマテリアライズド(Materialize)CSSは、コンポーネントをレンダリングするときにDOMに多くの変更を加えます。これにより、UIエレメントに対して簡単なJavaScript操作が行われます。

+1

Oml。これは私の問題を解決しました!ティズム!私はまた問題が実現していることに気づいたが、答えを見つけることができない。私を助けてくれてありがとう!名誉! – Akio

+0

実際には、イベントの委任を使用する場合は、selectを再初期化する必要はありません。私の答えは一瞬で更新されます。 –

関連する問題