스크립안에 for문을 사용했는데 결과가 맞질않네요.
</strong></p>
<p>"items": [
{
"display_name" : '<? echo $pname; ?>',
"sku" : '<? echo $prod_id; ?>'
},
{
"display_name" : '<? echo "Poor"; ?>',
"sku" : '<? echo "1234"; ?>',
}
],</p>
<p><strong>
"items": { "4D5E6F": { "display_name": "Poor Product Ever", "sku": "4D5E6F" }, "1A2B3C": { "display_name": "Best Product Ever", "sku": "1A2B3C" } }, 그래서 아래처럼 스크립안에 php for문을 써서 만들어 보았는데 2번째 아이템만 출력이 되네요... 뭐가 잘못된건지 아무리봐도 알지못하겠습니다. 아시는분 답변주시면 감사하겠습니다.
</strong></p>
<p><code><?php</code></p>
<p><code>echo</code> <code>'"items": ['</code><code>;</code></p>
<p><code> </code><code>for</code><code>(</code><code>$i</code><code>=0; </code><code>$i</code><code><</code><code>$totalRows</code><code>; </code><code>$i</code><code>++) { </code></p>
<p><code> </code><code>$pname</code> <code>= </code><code>$_SESSION</code><code>[</code><code>'cart'</code><code>][</code><code>$i</code><code>][0];</code></p>
<p><code> </code><code>$prod_id</code> <code>= </code><code>$_SESSION</code><code>[</code><code>'cart'</code><code>][</code><code>$i</code><code>][1];</code></p>
<p> </p>
<p><code> </code><code>echo</code> <code>'{'</code><code>;</code></p>
<p><code> </code><code>echo</code> <code>'"display_name" : "'</code><code>.</code><code>$pname</code><code>.</code><code>'",'</code><code>;</code></p>
<p><code> </code><code>echo</code> <code>'"sku" : "'</code><code>.</code><code>$prod_id</code><code>.</code><code>'"'</code><code>;</code></p>
<p> </p>
<p><code> </code><code>if</code><code>(</code><code>$i</code> <code>< </code><code>$totalRows</code><code>){</code></p>
<p><code> </code><code>echo</code> <code>'},'</code><code>;</code></p>
<p><code> </code><code>} </code><code>else</code> <code>if</code><code>(</code><code>$i</code> <code>== </code><code>$totalRows</code> <code>-1 ){</code></p>
<p><code> </code><code>echo</code> <code>'}'</code><code>;</code></p>
<p><code> </code><code>}</code></p>
<p><code> </code><code>}</code></p>
<p><code>echo</code> <code>'],'</code><code>;</code></p>
<p><code>?></code></p>
<p><strong>
답변 2개
답변에 대한 댓글 2개
전이게 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; ?>'
}],
...
댓글을 작성하려면 로그인이 필요합니다.
아래처럼하면 안되나요?
$pname,
'sku'=>$prod_id
);
}
echo json_encode($array);
?>
자바스크립트에 넣을떄는 아래처럼..
답변에 대한 댓글 3개
{"items":[{"display_name":"559","sku":"1"},{"display_name":"388","sku":"1"}]}
여기서 문제는 처음 시작할때 { 과 끝에 }을 없애야하고 ] 뒤에 , 가 붙어야합니다. 그래야 제대로 출력이 됩니다. 즉 이렇게 출력이 되면 됩니다.
"items":[
{
"display_name":"559",
"sku":"1"
},
{
"display_name":"388",
"sku":"1"
}
],
알려주신것처럼 해서 이게 가능할까요?
$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;
var ar = <?php echo json_encode($encoded)?>;
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
일단 var ar = '<?php echo json_encode($encoded)?>'; 이렇게 하시면 에러는 안나실겁니다.