ajax 문의 드립니다.

안녕하세요 늘 도움을 받고있는 초보개발자 입니다.

오늘은 다름이 아닌 상품등록폼에서 새창(iframe)을 통해서 상품정보클릭시 상품등록폼에 추가는 작업중에 질문이 생겨 글을 남겨봅니다. 

 

<iframe>에서 추가상품정보을 클릭할때마다 input창이 증가하여 medi_gram[i] 와 medi_price[i] 값이 추가 할 수 있게 됩니다.

 

질문1. 예를들어 상품 3개 등록시 medi_gram[0],medi_gram[1],medi_gram[2], 각각 사용자의 입력값을 DB에 저장하고 싶습니다.

---------------------------------------------------------------------------------

(medicineS.php 페이지)

Copy
for ($i = 0; $row = sql_fetch_array($result); $i++) { ?>       //iframe에서 상품정보클릭시 증가되는 input창    <tr>        <td class="hidden"><span id="medi_id"><?php echo $row['medi_id'] ?></span></td>        <td class="hidden"><span id="it_id"><?php echo $row['it_id'] ?></span></td>        <td class="text-center">            <input type="text" id="medi_gram<?php echo $i ?>" name="medi_gram<?php echo $i ?>"                   value="<?php echo $row['medi_gram'] ?>" size="5"> g        </td>        <td class="text-center">            <input type="text" id="medi_price<?php echo $i ?>"                   name="medi_price<?php echo $i ?>" value="<?php echo $row['medi_price'] ?>" size="6"> 원        </td>    </tr><?php } ?>

Copy
if ($type == 'IU') {    $medi_id = $_POST['medi_id'];     //주문서 고유번호    $sql = "SELECT *            FROM medicine_list             WHERE medi_id = $medi_id";      //주문한 상품의 count를 구하기위한    $query = sql_query($sql);    for ($i = 0; $row = sql_fetch_array($query); $i++) {        $sql = "UPDATE medicine_list                SET medi_gram = '{$_POST['medi_gram']}',                medi_price = '{$_POST['medi_price']}'                WHERE it_id = '{$row['it_id']}'                AND medi_id = '$medi_id'";        $result = sql_query($sql);    }    if ($result) echo "SUCCESS";    else echo "FAIL";}

 

----------------------------------------------------------------------------------

 

(medicineW.php 페이지)

Copy
<button onclick="add(<?php echo $i ?>)">등록하기</button>              <script>    function add(i){        $.ajax({            'url' : 'medicineS.php',            'type' : 'POST',            'data' : {                'type' : "IU",                'medi_gram' : $('#medi_list').contents().find('#medi_gram'+ i).val(),                'medi_price' : $('#medi_list').contents().find('#medi_price'+ i).val()            },            'success':function(){                alert('작성이 완료되었습니다.',location.reload());            }        });    }</script>

----------------------------------------------------------------------------------

등록하기 버튼을 누르면 추가된 medi_gram[i]와 medi_price[i]값을 받아와서, 입력된 input값 정보를 DB에 저장하고 싶습니다.
 

현재 $i=0; 고정값을 주어 첫번째 row 값만 DB에 저장되고 있는 상태입니다.(여기서 막혔어요.ㅠ.ㅠ)

Copy
<?php $i = 0;?><button onclick="add_category(<?php echo $i ?>)">등록하기</button><script>    function add_category(i){        $.ajax({            'url' : 'medicineS.php',            'type' : 'POST',            async:false,            'data' : {                'type' : "IU",                'medi_gram' : $('#medi_list').contents().find('#medi_gram'+ i).val(),                'medi_price' : $('#medi_list').contents().find('#medi_price'+ i).val()            },            'success':function(){                alert('작성이 완료되었습니다.',location.reload());            }        });    }</script>

 

 

답변 2개

<input type="text" id="medi_gram<?php echo $i ?>" name="medi_gram<?php echo $i ?>"

 => <input type="text" id="medi_gram<?php echo $i ?>" name="medi_gram[]" 배열로

로그인 후 평가할 수 있습니다

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

이렇게보니 상당히 어지럽네요.

 

테스트 하시는 페이지를 보여주시면 감이 잡힐 것 같은데...

로그인 후 평가할 수 있습니다

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

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

로그인
🐛 버그신고