상품리스트에서 위시리스트 버튼 구현 질문입니다~
본문
list.10.skin.php 에서
적당한 위치에
echo "<div class=\"sct_quick\">\n";
echo "<a href=\"{$this->href}{$row['it_id']}\"><img src=\"".G5_SHOP_URL."/img/btn_view.gif\"><span class=\"sound_only\">상세페이지 보기</span></a>";
echo "<a href=\"javascript:item_wish(document.fitem,'";
echo $row['it_id'];
echo "');\"><img src=\"".G5_SHOP_URL."/img/btn_wish.gif\"><span class=\"sound_only\">위시리스트에 담기</span></a>";
echo "</div>\n"
요 코드를 넣고
li 끝나기 전에
<script>
function item_wish(f, it_id)
{
f.url.value = "<?php echo G5_SHOP_URL; ?>/wishupdate.php?it_id=" + <?= $row['it_id']?>;
f.action = "<?php echo G5_SHOP_URL; ?>/wishupdate.php";
f.submit();
}
</script>
위의 스크립트를 추가해주었습니다.
그리고 리스트에 만들어 둔 위시리스트로 보내는 버튼을 누르게 되면
(index):565 Uncaught TypeError: Cannot read property 'url' of undefined
at item_wish ((index):565)
at <anonymous>:1:1
이 에러가 뜨는데 f.url.value 에서 url 값이 없어서 그런것 같은데..
어떤 값으로 정의해 주어야 하나요 ㅠ
item.form.skin.php 참고해서 하고있는데
어떤값을 할당해야 하는지 모르겠네요;
아래는
list.10.skin.php 파일 코드입니다
<?php
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
// add_stylesheet('css 구문', 출력순서); 숫자가 작을 수록 먼저 출력됨
// 중복으로 호출시 G5_SHOP_CSS_URL이 변수명으로 출력됨 따라서, 주석처리함 add_stylesheet('<link rel="stylesheet" href="'.G5_SHOP_CSS_URL.'/style.css">', 0);
?>
<!-- 상품진열 10 시작 { -->
<?php
for ($i=1; $row=sql_fetch_array($result); $i++) {
if ($this->list_mod >= 2) { // 1줄 이미지 : 2개 이상
if ($i%$this->list_mod == 0) $sct_last = ' sct_last'; // 줄 마지막
else if ($i%$this->list_mod == 1) $sct_last = ' sct_clear'; // 줄 첫번째
else $sct_last = '';
} else { // 1줄 이미지 : 1개
$sct_last = ' sct_clear';
}
if ($i == 1) {
if ($this->css) {
echo "<ul class=\"{$this->css}\">\n";
} else {
echo "<ul class=\"sct sct_10\">\n";
}
}
echo "<li class=\"sct_li{$sct_last}\" style=\"width:{$this->img_width}px\">\n";
if ($this->href) {
echo "<div class=\"sct_img\"><a href=\"{$this->href}{$row['it_id']}\" class=\"sct_a\">\n";
}
if ($this->view_it_img) {
echo get_it_image($row['it_id'], $this->img_width, $this->img_height, '', '', stripslashes($row['it_name']))."\n";
}
if ($this->href) {
echo "</a></div>\n";
}
if ($this->view_it_icon) {
echo "<div class=\"sct_icon\">".item_icon($row)."</div>\n";
}
echo "<div class=\"sct_quick\">\n";
echo "<a href=\"{$this->href}{$row['it_id']}\"><img src=\"".G5_SHOP_URL."/img/btn_view.gif\"><span class=\"sound_only\">상세페이지 보기</span></a>";
echo "<a href=\"javascript:item_wish(document.fitem,'";
echo $row['it_id'];
echo "');\"><img src=\"".G5_SHOP_URL."/img/btn_wish.gif\"><span class=\"sound_only\">위시리스트에 담기</span></a>";
echo "</div>\n";
if ($this->view_it_id) {
echo "<div class=\"sct_id\"><".stripslashes($row['it_id'])."></div>\n";
}
if ($this->href) {
echo "<div class=\"sct_txt\"><a href=\"{$this->href}{$row['it_id']}\" class=\"sct_a\">\n";
}
if ($this->view_it_name) {
echo stripslashes($row['it_name'])."\n";
}
if ($this->href) {
echo "</a></div>\n";
}
if ($this->view_it_basic && $row['it_basic']) {
echo "<div class=\"sct_basic\">".stripslashes($row['it_basic'])."</div>\n";
}
if ($this->view_it_cust_price || $this->view_it_price) {
echo "<div class=\"sct_cost\">\n";
if ($this->view_it_cust_price && $row['it_cust_price']) {
echo "<p><span class=\"sct_c_cost\">소비자가격<span class=\"sct_vat\">(VAT포함)</span></span><del>".display_price($row['it_cust_price'])."</del></p>\n";
}
if ($this->view_it_price) {
echo "<p><span class=\"sct_d_cost\">할인가격<span class=\"sct_vat\">(VAT포함)</span></span><strong>".display_price(get_price($row), $row['it_tel_inq'])."</strong></p>\n";
}
echo "</div>\n";
}
if ($this->view_sns) {
$sns_top = $this->img_height + 10;
$sns_url = G5_SHOP_URL.'/item.php?it_id='.$row['it_id'];
$sns_title = get_text($row['it_name']).' | '.get_text($config['cf_title']);
echo "<div class=\"sct_sns\" style=\"top:{$sns_top}px\">";
echo get_sns_share_link('facebook', $sns_url, $sns_title, G5_SHOP_SKIN_URL.'/img/sns_fb_s.gif');
echo get_sns_share_link('twitter', $sns_url, $sns_title, G5_SHOP_SKIN_URL.'/img/sns_twt_s.gif');
echo get_sns_share_link('googleplus', $sns_url, $sns_title, G5_SHOP_SKIN_URL.'/img/sns_goo_s.gif');
echo "</div>\n";
}
?>
<script type="text/javascript">
// 상품보관
function item_wish(f, it_id)
{
f.url.value = "<?php echo G5_SHOP_URL; ?>/wishupdate.php?it_id=" + <?= $row['it_id']?>;
f.action = "<?php echo G5_SHOP_URL; ?>/wishupdate.php";
f.submit();
}
</script>
<?php
echo "</li>\n";
}
if ($i > 1) echo "</ul>\n";
if($i == 1) echo "<p class=\"sct_noitem\">등록된 상품이 없습니다.</p>\n";
?>
<!-- } 상품진열 10 끝 -->
답변 1
javascript:item_wish(document.fitem <---여기서 지정하는
fitem이라는 form 이 있어야죠
for문 완전히 끝나고난 부분에 만들어넣으세요
<form name="fitem" method="post">
<input type="hidden" name="it_id[]" id='it_idk' value=''>
<input type="hidden" name="url">
</form>
또한
function
item_wish(f, it_id)<-- 이 함수를 /li 안쪽에다 넣어서 반복 되게 하면 안됩니다
for문 끝나고 나서 116행 다음에 한번만 넣으세요
그리고 function item_wish(f, it_id)함수에서 아래와 같이 수정
?it_id="
+ <?=
$row
[
'it_id'
]?>; ---> ?it_id="
+
it_id;
$('#it_idk').val(it_id); //<----추가
답변을 작성하시기 전에 로그인 해주세요.