스크립안에 for문을 사용했는데 결과가 맞질않네요.
Copy
"items": [
{
"display_name" : '<? echo $pname; ?>',
"sku" : '<? echo $prod_id; ?>'
},
{
"display_name" : '<? echo "Poor"; ?>',
"sku" : '<? echo "1234"; ?>',
}
],
쇼핑카트에 있는 상품을 출력하기위해서 매뉴얼로 위처럼 만들어주면 아래처럼 결과가 잘 나옵니다.
"items": {
"4D5E6F": {
"display_name": "Poor Product Ever",
"sku": "4D5E6F"
},
"1A2B3C": {
"display_name": "Best Product Ever",
"sku": "1A2B3C"
}
},
그래서 아래처럼 스크립안에 php for문을 써서 만들어 보았는데 2번째 아이템만 출력이 되네요... 뭐가 잘못된건지 아무리봐도 알지못하겠습니다.
아시는분 답변주시면 감사하겠습니다.
Copy
<?php
echo '"items": [';
for($i=0; $i<$totalRows; $i++) {
$pname = $_SESSION['cart'][$i][0];
$prod_id = $_SESSION['cart'][$i][1];
echo '{';
echo '"display_name" : "'.$pname.'",';
echo '"sku" : "'.$prod_id.'"';
if($i < $totalRows){
echo '},';
} else if($i == $totalRows -1 ){
echo '}';
}
}
echo '],';
?>
|
답변 2개 / 댓글 5개
6년 전
답변감사합니다. 스크립트에 넣을때 이렇게 하니까 에러가 나는데 제가 맞게 한건가요?
var ar = <?php echo json_encode($encoded)?>;
답변에 대한 댓글 2개
6년 전
6년 전
예 여전히 에러는나지만 한가지 궁금한게있습니다. 제가 아래와같은 형식으로 데이타를 넘겨줘야합니다.
전이게 json형식인줄 알았는데 아니라고 하시니 한번 설명부탁드릴게요...
이렇게 하면 아무문제없이 잘 전달됩니다.
맨마지막 부분이 제가 요청한 부분입니다.
상품이 한개만 있으면 이대로 괜찮지만 쇼핑카트에는 제품이 여러게가 들어갈 수 가있어 함께 전달하려면 이 스크립트안에 for 문을 이용해 전달하려고 한겁니다.
세크리님이 알려주신 부분이 훨씬 손쉬워보여서 마음에 듭니다. 그런데 어찌하여 에러가 나는지 제가 설명을 잘못해서 문제가 생긴거지 시간되시면 한번봐주시면 감사하겠습니다.
<script>
firm.checkout({
//shipping contact
"shipping": {
"name": {
"first" : '<? echo $ship_fname; ?>',
"last" : '<? echo $ship_lname; ?>'
},
"address": {
"line1" : '<? echo $ship_address; ?>',
"line2" : '',
"city" : '<? echo $ship_city; ?>',
"state" : '<? echo $ship_state; ?>',
"zipcode": '<? echo $ship_zip; ?>'
},
"email" : '<? echo $ship_email; ?>',
"phone_number" : '<? echo $ship_dphone; ?>'
},
// cart
"items": [{
"display_name" : '<? echo $pname; ?>',
"sku" : '<? echo $prod_id; ?>',
"unit_price" : <? echo sprintf("%0.2f",$unit_price); ?>,
"qty" : <? echo $qty_num; ?>,
"item_image_url" : '<? echo "https:" . $wLimg; ?>',
"item_url" : '<? echo $firm_product_url; ?>'
}],
...
전이게 json형식인줄 알았는데 아니라고 하시니 한번 설명부탁드릴게요...
이렇게 하면 아무문제없이 잘 전달됩니다.
맨마지막 부분이 제가 요청한 부분입니다.
상품이 한개만 있으면 이대로 괜찮지만 쇼핑카트에는 제품이 여러게가 들어갈 수 가있어 함께 전달하려면 이 스크립트안에 for 문을 이용해 전달하려고 한겁니다.
세크리님이 알려주신 부분이 훨씬 손쉬워보여서 마음에 듭니다. 그런데 어찌하여 에러가 나는지 제가 설명을 잘못해서 문제가 생긴거지 시간되시면 한번봐주시면 감사하겠습니다.
<script>
firm.checkout({
//shipping contact
"shipping": {
"name": {
"first" : '<? echo $ship_fname; ?>',
"last" : '<? echo $ship_lname; ?>'
},
"address": {
"line1" : '<? echo $ship_address; ?>',
"line2" : '',
"city" : '<? echo $ship_city; ?>',
"state" : '<? echo $ship_state; ?>',
"zipcode": '<? echo $ship_zip; ?>'
},
"email" : '<? echo $ship_email; ?>',
"phone_number" : '<? echo $ship_dphone; ?>'
},
// cart
"items": [{
"display_name" : '<? echo $pname; ?>',
"sku" : '<? echo $prod_id; ?>',
"unit_price" : <? echo sprintf("%0.2f",$unit_price); ?>,
"qty" : <? echo $qty_num; ?>,
"item_image_url" : '<? echo "https:" . $wLimg; ?>',
"item_url" : '<? echo $firm_product_url; ?>'
}],
...
6년 전
아래처럼하면 안되나요?
<?php
$array = array();
for($i=0; $i<$totalRows; $i++) {
$pname = $_SESSION['cart'][$i][0];
$prod_id = $_SESSION['cart'][$i][1];
$array['items'][] = array(
'display_name'=>$pname,
'sku'=>$prod_id
);
}
echo json_encode($array);
?>
자바스크립트에 넣을떄는 아래처럼..
<script> var ar = <?php echo json_encode($array) ?>; </script>
답변에 대한 댓글 3개
6년 전
예 아래와같이 결과값이 나옵니다.
{"items":[{"display_name":"559","sku":"1"},{"display_name":"388","sku":"1"}]}
여기서 문제는 처음 시작할때 { 과 끝에 }을 없애야하고 ] 뒤에 , 가 붙어야합니다. 그래야 제대로 출력이 됩니다. 즉 이렇게 출력이 되면 됩니다.
"items":[
{
"display_name":"559",
"sku":"1"
},
{
"display_name":"388",
"sku":"1"
}
],
알려주신것처럼 해서 이게 가능할까요?
{"items":[{"display_name":"559","sku":"1"},{"display_name":"388","sku":"1"}]}
여기서 문제는 처음 시작할때 { 과 끝에 }을 없애야하고 ] 뒤에 , 가 붙어야합니다. 그래야 제대로 출력이 됩니다. 즉 이렇게 출력이 되면 됩니다.
"items":[
{
"display_name":"559",
"sku":"1"
},
{
"display_name":"388",
"sku":"1"
}
],
알려주신것처럼 해서 이게 가능할까요?
6년 전
요렇게해보세요
$array = array();
for($i=0; $i<$totalRows; $i++) {
$pname = $_SESSION['cart'][$i][0];
$prod_id = $_SESSION['cart'][$i][1];
$array[]=array('display_name'=>$pname,"sku"=>$prod_id);
}
$encoded = '"items":'.json_encode($items);
echo $encoded;
$array = array();
for($i=0; $i<$totalRows; $i++) {
$pname = $_SESSION['cart'][$i][0];
$prod_id = $_SESSION['cart'][$i][1];
$array[]=array('display_name'=>$pname,"sku"=>$prod_id);
}
$encoded = '"items":'.json_encode($items);
echo $encoded;
6년 전
답변감사합니다. 스크립트에 넣을때 이렇게 하니까 에러가 나는데 제가 맞게 한건가요?
var ar = <?php echo json_encode($encoded)?>;
var ar = <?php echo json_encode($encoded)?>;
답변을 작성하려면 로그인이 필요합니다.
일단 var ar = '<?php echo json_encode($encoded)?>'; 이렇게 하시면 에러는 안나실겁니다.