0

複数の行を持つテーブルがあり、各行にはドロップダウン リストがあります。私は JavaScript が初めてで、行から選択した値を取得できません。どのようにそれを行うことができますか?前もって感謝します。

コード:

function chng_page(serialNum, rowid)
{
    alert(rowid);
    alert(serialNum);
    var select_index = document.getElementById('orderStatus').selectedIndex; 
    //get the value of selected option
    var option_value = document.getElementById('orderStatus').options[select_index].value;

    //redirect with value as a url parameter
    window.location = 'orderStatus.php?serialNum=' + serialNum + '&status=' + option_value;
}
</script>

//ドロップダウン リストのコード

<select id="orderStatus" name="orderStatus" onchange="chng_page(<?php echo $serialNum?    >, this.parentNode.parentNode.rowIndex)">
   <option value="Pending" <?php echo ($status == "Pending") ? ' selected="selected"' : ''; ?>>Pending</option>
   <option value="Cooking" <?php echo ($status == "Cooking") ? ' selected="selected"' : ''; ?>>Cooking</option>
   <option value="On The Way" <?php echo ($status == "On The Way") ? ' selected="selected"' : ''; ?>>On The Way</option>
   <option value="Delivered" <?php echo ($status == "Delivered") ? ' selected="selected"' : ''; ?>>Delivered</option>   
</select>
4

3 に答える 3

3

各行の選択要素に一意の ID があるかどうかについては言及しませんでしたが、何らかの形でコードに表示されます。
その場合、JQuery (一般的な JavaScript フレームワーク) を使用して、選択した値を取得できます。
HTML に JQuery ファイルを含め、イベント ハンドラーを select 要素にアタッチしたと仮定すると (簡単にするために、現在の select 要素の ID を関数のパラメーターとして渡します)、次のようにします。

var selected_value = $("#id_of_select_element option:selected").val();

select 要素の ID が一意である場合、その 1 行のコードは確実に機能します。

于 2012-05-10T15:01:09.703 に答える
0

各行に同じ id-> #orderStatus のドロップダウン リストがある場合は、これを試してください。

function chng_page(serialNum, ddlist)
{
    var rowid = ddlist.parentNode.parentNode.rowIndex
    alert(rowid);
    alert(serialNum);
    var select_index = ddlist.selectedIndex; 
    //get the value of selected option
    var option_value = ddlist.options[select_index].value;

    //redirect with value as a url parameter
    window.location = 'orderStatus.php?serialNum=' + serialNum + '&status=' + option_value;
}

<select name="orderStatus" onchange="chng_page(<?php echo $serialNum?>, this)">
   <option value="Pending" <?php echo ($status == "Pending") ? ' selected="selected"' : ''; ?>>Pending</option>
   <option value="Cooking" <?php echo ($status == "Cooking") ? ' selected="selected"' : ''; ?>>Cooking</option>
   <option value="On The Way" <?php echo ($status == "On The Way") ? ' selected="selected"' : ''; ?>>On The Way</option>
   <option value="Delivered" <?php echo ($status == "Delivered") ? ' selected="selected"' : ''; ?>>Delivered</option>   
</select>
于 2012-05-10T15:09:06.520 に答える
0

すべてのテーブル行のドロップダウンに同じ名前/ID があります

于 2012-05-10T15:02:26.350 に答える