채택완료

ajax 변환 질문드립니다.

2022-11-21 (월) 14:38:11 2,198
Copy
<table id="supply_frm">
<tr><td>
    <select value="<?php echo $wr11[$i]; ?>" name="wr_11[]">
        <option value="" <?php echo get_selected('제품 선택', $wr11[$i]); ?>>제품 선택</option>
        <option value="사과"    codes="APPLE"        <?php echo get_selected('사과',        $wr11[$i]); ?>>사과</option>
        <option value="딸기"    codes="STRAWBERRY"    <?php echo get_selected('딸기',        $wr11[$i]); ?>>딸기</option>
        <option value="바나나"    codes="BANANA"        <?php echo get_selected('바나나',        $wr11[$i]); ?>>바나나</option>

    </select>
</td></tr>

</table>


<div id="add_supply">추가</div>

$("#add_supply").click(function() {
    var $el = $("#supply_frm tr:last");
    var fld = "<tr><td>\n";
    fld += "<select name=\"wr_11[]\" >\n";
    fld += "<option value=\"\">제품 선택</option>\n";
    fld += "<option value=\"사과\"            codes=\"APPLE\"        >사과</option>\n";
    fld += "<option value=\"딸기\"            codes=\"STRAWBERRY\"    >딸기</option>\n";
    fld += "<option value=\"바나나\"            codes=\"BANANA\"    >바나나</option>\n";
    fld += "</select>";
    fld += "</td></tr>";
    $el.append(fld);
};

위의 막코딩을 ajax로 변경을 할려고 합니다.

Copy
<tr><td>
    <select value="<?php echo $wr11[$i]; ?>" name="wr_11[]">
        <option value="" <?php echo get_selected('제품 선택', $wr11[$i]); ?>>제품 선택</option>
         <?       $sql = "SELECT it_product_main, it_db_main FROM g5_write_stock_all GROUP BY it_product_main";
              $result = sql_query($sql);
     
              for($j=0; $row=sql_fetch_array($result); $j++) {
         ?>  
         <option value="<?php echo $row['it_product_main']; ?>" codes="<?php echo $row['it_db_main']; ?>" <?php echo $row['it_product_main'] == $wr11[$i] ? " selected='selected' ": ""; ?>><?php echo $row['it_product_main']; ?></option>
         <?  } ?>
    </select>
</td></tr>

이렇게 기본으로 나와있는건 ajax로 받아져오는데
추가 버튼을 누를때마다 
하단에 동일한 tr값을 추가할려면 어떻게 해야 하나요?

$("#add_supply").click(function() {

눌렀을때를 어떻게 변경해야 동일하게 나오는지 감을 못잡겠습니다.

답변 1개 / 댓글 3개

채택된 답변
+20 포인트
Copy
<script>
var newRow = $("#supply_frm tr:last").eq(0);

$("#add_supply").click(function() {
    var $el = $("#supply_frm tbody:last");
    $el.append(newRow.clone(true));
});
</script>

이런식으로 한번만 tr값을 읽어서 추가하는 방법은 어떨까요

답변에 대한 댓글 3개

답변 감사합니다.
클론 이외에는 방법이 없을까요?
음...
javascript 코드 안에 php 코드를 넣는 방법도 있고(이경우는 디비를 한번만 호출할 수도 있긴 합니다만..)
append할 값을 뿌려주는 페이지를 추가로 구성해서 ajax로 호출하는 방법도 있기는 합니다만
결국 출력시 디비를 2번이상 호출해야 할텐데 굳이 2번 호출할 이유가 있을까 싶네요
감사합니다.

클론으로 처리했습니다.

답변을 작성하려면 로그인이 필요합니다.