ajax 문의 드립니다.
안녕하세요 늘 도움을 받고있는 초보개발자 입니다.
오늘은 다름이 아닌 상품등록폼에서 새창(iframe)을 통해서 상품정보클릭시 상품등록폼에 추가는 작업중에 질문이 생겨 글을 남겨봅니다.
<iframe>에서 추가상품정보을 클릭할때마다 input창이 증가하여 medi_gram[i] 와 medi_price[i] 값이 추가 할 수 있게 됩니다.
질문1. 예를들어 상품 3개 등록시 medi_gram[0],medi_gram[1],medi_gram[2], 각각 사용자의 입력값을 DB에 저장하고 싶습니다.
---------------------------------------------------------------------------------
(medicineS.php 페이지)
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 } ?>
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 페이지)
<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에 저장되고 있는 상태입니다.(여기서 막혔어요.ㅠ.ㅠ)
<?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[]" 배열로
댓글을 작성하려면 로그인이 필요합니다.
이렇게보니 상당히 어지럽네요.
테스트 하시는 페이지를 보여주시면 감이 잡힐 것 같은데...
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인