2012-06-18 5 views
2

제품에 라디오 버튼을 주문할 수있는 주문 양식이 있습니다.PHP 메일의 동적 텍스트 상자

나는 또한 당신이 무엇을 선택하고 있는지에 관한 페이지를 볼 때 가격이 산정되는 텍스트 상자를 가지고 있습니다.

이 스크립트를 사용하여 수행됩니다

<script type="text/javascript"> 
jQuery(document).ready(function($){ 
var frm = document.forms.myForm; 
frm.onchange = function(e) { 
    var tot = 0; 
    for(var i = 0, l = frm.elements.length; i < l; i++) { 
     if(frm.elements[i].checked) { 
      tot += parseFloat(frm.elements[i].getAttribute('data-price')); 
     } 
    } 
    document.getElementById('total').value = (tot.toFixed(2)); 
} 
}) 
    </script> 

상자는 여기

<input id="total" name="total2" class="total-box" type="text"> 

이다 그러나 전송 가져옵니다 정보가 메일에 추가되지 않는 어떤 이유로, 다른 모든이 전송됩니다 벌금. 내 메일 스크립트에서

나는

$total2 = $_REQUEST['total2'] ; 

<tr><td style="border-bottom:1px solid #7e7e7e;">Price</td><td style="border-bottom:1px solid #7e7e7e;">'.$total2.' </td></tr> 

어떤 아이디어가?

+0

이메일에 표시되는 내용은 무엇입니까? 상자가 비어 있거나 잘못된 총이 오는 것입니까? – andrewsi

+0

@andrewsi 상자가 비어 있습니다. 제가보기에 도움이된다면 스크립트를 pastebin에 넣을 수 있습니까? – Matt

+1

입력 상자에 기본값을 추가하고 다시 시도해 보시겠습니까? 'value = "0"과 같은 것이 트릭을해야합니다. 폼이 제출 될 때 폼의 HTML을 가져와 javascript가 폼 요소의 값을 변경 한 것으로 간주합니다. – andrewsi

답변

0

자바 스크립트를 사용하는 경우 입력 필드의 값은 서버 $ _POST 데이터에 대해 설정되지 않습니다. 그래서 어떤 종류의 직렬화 (즉, 모든 입력 값을 받아 $ _POST를 통해 전송하는 javascript)을 찾고 있습니다.

순수한 자바 스크립트를 고수하고 싶다면 : http://code.google.com/p/form-serialize/이 도움이 될 수 있습니다. 아웃. 그렇지 않으면 어떤 프레임 워크를보고 serialize()를하면, 대부분의 프레임 워크는 아주 자주 사용되기 때문에 구현됩니다.

내 제안은 PHP aswel에서 가격 생성 스크립트를 다시 작성하는 것이므로 어떤 양식 버튼이 눌러 졌는지 (즉, 직렬화 할 필요가 없음) 제출 한 다음 백엔드에서 가격을 얻는 것입니다. 너무 많은 안전!

관련 문제