저희가 지금 몰 프로그램을 제작중입니다.
현재 영커트 5를 이용하고 있는데
작업자가 중간에 퇴직 했습니다.
그런데 인수를 받은 사람이 들어가 보니 상품관리의 선택옵션을 사용하지 않고 직접 상위 선택에 따라 하위 선택의 옵션 내용이 다양하게 바뀌니까 그렇게 했나 봅니다.또한 선택 옵션이 6개정도 됩니다. 이것을 모두 직접 자바스크립트로 코딩 햇습니다. 그래서 이를 인수받아 작업하는데 에러가 자꾸 터집니다. 에러코드는 shop.js:265 Uncaught TypeError: Cannot read property 'split' of undefined at sel_option_process (shop.js:265) at go_by_type1 (item.php?it_id=1498196896&type=1:1346) at HTMLImageElement.onclick (item.php?it_id=1498196896&type=1:1433) 그리고 소스프로그램은 일부입니다. 화면의 옵션부분입니다. 수량 제본 선택 무선 양장 중첩(50페이지미만) 스프링제본 주문버튼시 처리부분 입니다. function go_by_type1(btntype) { var ordername = $("#ordername").val(); var size = $("#page_size option:selected").val(); var pagesize_tops = $("#pagesize_tops").val(); var pagesize_left = $("#pagesize_left").val(); var cover_page = $("#cover_page option:selected").val(); //var cover_page_gram = $("#cover_page_gram option:selected").val(); var wingprinttype = $(':radio[name="wingprinttype"]:checked').val(); //var innserpagetype = $(':radio[name="innserpagetype"]:checked').val(); var buy_count = $("#buy_count").val(); var hugagong = ""; $("input[name=hugagong]:checked").each(function() { if (hugagong == "") { hugagong += $(this).val(); } else { hugagong += "," + $(this).val(); } }); var buy_qus = $("#buy_qus").val(); if (ordername == "") { alert("주문명을 입력해주세요"); } else if (size == "-") { alert("사이즈를 선택해주세요."); } /*else if(pagesize_tops > 594){ alert("사이즈 최대값을 초과하였습니다(최대(594x841))"); } else if(pagesize_left > 841){ alert("사이즈 최대값을 초과하였습니다(최대((594x841))"); }*/ else if (cover_page == "-") { alert("용지를 선택해주세요."); } /*else if(cover_page_gram == "-"){ alert("평량을 선택해주세요."); } */ else if (buy_count < 30 || buy_count > 10000) { alert("주문가능 수량은 30~10000부 입니다"); } else { $(".it_opt_del").click(); //추가금액 계산 var size_price = $("#page_size option:selected").attr("price"); var cover_page_price = $("#cover_page option:selected").attr("price"); // var cover_page_gram_price = $("#cover_page_gram option:selected").attr("price"); var wingprinttype_price = $(':radio[name="wingprinttype"]:checked').attr("price"); var hugagong_price = 0; $("input[name=hugagong]:checked").each(function() { hugagong_price += parseInt($(this).attr("price")); }); var priceSum = parseInt(size_price) + parseInt(cover_page_price) + // parseInt(cover_page_gram_price) + parseInt(wingprinttype_price) + parseInt(hugagong_price); $("#it_option_1").find("option").each(function() { if (priceSum == $(this).val().split(",")[0]) { $('#it_option_1 option[value="' + $(this).val() + '"]').attr('selected', 'selected'); } }); //수량 1개의 가격 var oneByPrice = priceSum; var txt_ordername = $("#ordername").val(); var txt_size = $("#page_size option:selected").text(); var txt_cover_page = $("#cover_page option:selected").text(); // var txt_cover_page_gram = $("#cover_page_gram option:selected").text(); var txt_wingprinttype = $(':radio[name="wingprinttype"]:checked').text(); var txt_hugagong = ""; $("input[name=hugagong]:checked").each(function() { if (txt_hugagong == "") { txt_hugagong += $(this).attr("textv"); } else { txt_hugagong += "," + $(this).attr("textv"); } }); //유효성 체크 완료 (카타록/브로슈어 주문시작) if (btntype == "buy") { sel_option_process(true); $(".input-group .input-sm").val(buy_count); price_calculate(); $("#it_sel_option .input-sm").each(function(index) { if (index == 1) { $(this).val(txt_ordername); } $("#it_sel_option .input-sm").each(function(index) { if (index == 2) { //주문내역 var appendtext = "사이즈:" + txt_size; appendtext += " 용지:" + txt_cover_page; appendtext += " 인쇄:" + txt_wingprinttype; appendtext += " 후가공:" + txt_hugagong; $(this).val(appendtext); } }); $("#it_sel_option .input-sm").each(function(index) { if (index == 3) { //요청사항 $(this).val(buy_qus); } }); $("#org_btn").click(); } //유효성 체크 완료 (카타록/브로슈어 견적시작) if (btntype == "pom") { oneByPrice = oneByPrice + 10000; $(".lists1").html(""); $(".lists2").html(""); $(".lists3").html(""); $(".bigo").html(""); $(".allpricet1").html(""); $(".allpricet2").html(""); $(".allpricet3").html(""); $(".allpricet1").html((oneByPrice * 0.9) * buy_count); $(".allpricet2").html((oneByPrice * 0.1) * buy_count); $(".allpricet3").html(((oneByPrice * 0.9) + (oneByPrice * 0.1)) * buy_count); var appendtext = "사이즈" + txt_size + ""; appendtext += "용지" + txt_cover_page + ""; // appendtext += "평량" + txt_cover_page_gram + ""; appendtext += "인쇄" + txt_wingprinttype + ""; appendtext += "수량" + buy_count + ""; $(".lists1").append(appendtext); appendtext = "" + txt_hugagong + ""; $(".lists2").append(appendtext); appendtext = "사이즈₩" + size_price + ""; appendtext += "용지₩" + cover_page_price + ""; // appendtext += "평량₩" + cover_page_gram_price + ""; appendtext += "인쇄₩" + wingprinttype_price + ""; appendtext += "후가공₩" + hugagong_price + ""; $(".lists3").append(appendtext); $("#pom").fadeIn(400); $(".bigo").html(buy_qus); } } } } http://www.digitaladone.com/skin/apms/item/board/img/button_estimate.jpg">http://www.digitaladone.com/skin/apms/item/board/img/button_estimate.jpg" onclick="go_by_type1('pom');" style="cursor:pointer;" /> http://www.digitaladone.com/skin/apms/item/board/img/button_order.jpg">http://www.digitaladone.com/skin/apms/item/board/img/button_order.jpg" onclick="go_by_type1('buy');" style="cursor:pointer;" /> 이때 위에서 sel_option_process() 펑션을 호출하면 Uncaught TypeError: Cannot read property 'split' of undefined at sel_option_process (shop.js:265) at go_by_type1 ( 에러가 나옵니다. 사이즈가 커서 업로드가 어렵습니다.연락 주시면 전달 드릴 수 있겠습니다.참 이 문제를 해결해 주시면 그에 대한 사례 하겠습니다. 010-4281-9618
상위 선택에 따라 하위 선택의 옵션 내용이 다양하게 바뀌니까 그렇게 했나 봅니다.
또한 선택 옵션이 6개정도 됩니다. 이것을 모두 직접 자바스크립트로 코딩 햇습니다.
그래서 이를 인수받아 작업하는데 에러가 자꾸 터집니다.
에러코드는
shop.js:265 Uncaught TypeError: Cannot read property 'split' of undefined
at sel_option_process (shop.js:265)
at go_by_type1 (item.php?it_id=1498196896&type=1:1346)
at HTMLImageElement.onclick (item.php?it_id=1498196896&type=1:1433)
그리고 소스프로그램은
일부입니다.
화면의 옵션부분입니다.
수량 제본 선택 무선 양장 중첩(50페이지미만) 스프링제본
수량
제본 선택 무선 양장 중첩(50페이지미만) 스프링제본
제본
선택
무선
양장
중첩(50페이지미만)
스프링제본
주문버튼시 처리부분 입니다.
function go_by_type1(btntype) {
var ordername = $("#ordername").val();
var size = $("#page_size option:selected").val();
var pagesize_tops = $("#pagesize_tops").val();
var pagesize_left = $("#pagesize_left").val();
var cover_page = $("#cover_page option:selected").val();
//var cover_page_gram = $("#cover_page_gram option:selected").val();
var wingprinttype = $(':radio[name="wingprinttype"]:checked').val();
//var innserpagetype = $(':radio[name="innserpagetype"]:checked').val();
var buy_count = $("#buy_count").val();
var hugagong = "";
$("input[name=hugagong]:checked").each(function() {
if (hugagong == "") {
hugagong += $(this).val();
} else {
hugagong += "," + $(this).val();
}
});
var buy_qus = $("#buy_qus").val();
if (ordername == "") {
alert("주문명을 입력해주세요");
} else if (size == "-") {
alert("사이즈를 선택해주세요.");
/*else if(pagesize_tops > 594){
alert("사이즈 최대값을 초과하였습니다(최대(594x841))");
} else if(pagesize_left > 841){
alert("사이즈 최대값을 초과하였습니다(최대((594x841))");
}*/
else if (cover_page == "-") {
alert("용지를 선택해주세요.");
/*else if(cover_page_gram == "-"){
alert("평량을 선택해주세요.");
} */
else if (buy_count < 30 || buy_count > 10000) {
alert("주문가능 수량은 30~10000부 입니다");
$(".it_opt_del").click();
//추가금액 계산
var size_price = $("#page_size option:selected").attr("price");
var cover_page_price = $("#cover_page option:selected").attr("price");
// var cover_page_gram_price = $("#cover_page_gram option:selected").attr("price");
var wingprinttype_price = $(':radio[name="wingprinttype"]:checked').attr("price");
var hugagong_price = 0;
hugagong_price += parseInt($(this).attr("price"));
var priceSum =
parseInt(size_price) +
parseInt(cover_page_price) +
// parseInt(cover_page_gram_price) +
parseInt(wingprinttype_price) +
parseInt(hugagong_price);
$("#it_option_1").find("option").each(function() {
if (priceSum == $(this).val().split(",")[0]) {
$('#it_option_1 option[value="' + $(this).val() + '"]').attr('selected', 'selected');
//수량 1개의 가격
var oneByPrice = priceSum;
var txt_ordername = $("#ordername").val();
var txt_size = $("#page_size option:selected").text();
var txt_cover_page = $("#cover_page option:selected").text();
// var txt_cover_page_gram = $("#cover_page_gram option:selected").text();
var txt_wingprinttype = $(':radio[name="wingprinttype"]:checked').text();
var txt_hugagong = "";
if (txt_hugagong == "") {
txt_hugagong += $(this).attr("textv");
txt_hugagong += "," + $(this).attr("textv");
//유효성 체크 완료 (카타록/브로슈어 주문시작)
if (btntype == "buy") {
sel_option_process(true);
$(".input-group .input-sm").val(buy_count);
price_calculate();
$("#it_sel_option .input-sm").each(function(index) {
if (index == 1) {
$(this).val(txt_ordername);
if (index == 2) {
//주문내역
var appendtext = "사이즈:" + txt_size;
appendtext += " 용지:" + txt_cover_page;
appendtext += " 인쇄:" + txt_wingprinttype;
appendtext += " 후가공:" + txt_hugagong;
$(this).val(appendtext);
if (index == 3) {
//요청사항
$(this).val(buy_qus);
$("#org_btn").click();
//유효성 체크 완료 (카타록/브로슈어 견적시작)
if (btntype == "pom") {
oneByPrice = oneByPrice + 10000;
$(".lists1").html("");
$(".lists2").html("");
$(".lists3").html("");
$(".bigo").html("");
$(".allpricet1").html("");
$(".allpricet2").html("");
$(".allpricet3").html("");
$(".allpricet1").html((oneByPrice * 0.9) * buy_count);
$(".allpricet2").html((oneByPrice * 0.1) * buy_count);
$(".allpricet3").html(((oneByPrice * 0.9) + (oneByPrice * 0.1)) * buy_count);
var appendtext = "사이즈" + txt_size + "";
appendtext += "용지" + txt_cover_page + "";
// appendtext += "평량" + txt_cover_page_gram + "";
appendtext += "인쇄" + txt_wingprinttype + "";
appendtext += "수량" + buy_count + "";
$(".lists1").append(appendtext);
appendtext = "" + txt_hugagong + "";
$(".lists2").append(appendtext);
appendtext = "사이즈₩" + size_price + "";
appendtext += "용지₩" + cover_page_price + "";
// appendtext += "평량₩" + cover_page_gram_price + "";
appendtext += "인쇄₩" + wingprinttype_price + "";
appendtext += "후가공₩" + hugagong_price + "";
$(".lists3").append(appendtext);
$("#pom").fadeIn(400);
$(".bigo").html(buy_qus);
http://www.digitaladone.com/skin/apms/item/board/img/button_estimate.jpg">http://www.digitaladone.com/skin/apms/item/board/img/button_estimate.jpg" onclick="go_by_type1('pom');" style="cursor:pointer;" />
http://www.digitaladone.com/skin/apms/item/board/img/button_order.jpg">http://www.digitaladone.com/skin/apms/item/board/img/button_order.jpg" onclick="go_by_type1('buy');" style="cursor:pointer;" />
이때 위에서 sel_option_process() 펑션을 호출하면
Uncaught TypeError: Cannot read property 'split' of undefined
at go_by_type1 (
에러가 나옵니다.
사이즈가 커서 업로드가 어렵습니다.
연락 주시면 전달 드릴 수 있겠습니다.
참 이 문제를 해결해 주시면 그에 대한 사례 하겠습니다.
010-4281-9618
가격,이름 <== 이런식으로 되어 있던 문자열을 다른식으로 입력하신건 아닌가요?
소스 보니 가격,이름 이부분에서 앞에 가격부분만 뽑아 비교하는 부분에서 에러가 발생하네요
댓글을 작성하려면 로그인이 필요합니다.
에러 자체는 넘어가는 값이 문자형이 아니라서 split 함수가 호출 안되는 경우인데
코드 자체를 봐야 해결이 될거 같습니다.
답변을 작성하려면 로그인이 필요합니다.
이 게시물을 신고 하시겠습니까?신고사유를 선택해주세요.
쪽지 보냅니다