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[]" 배열로