2011-07-17 5 views
0

나는 웹 사이트에 친구 섹션을 추가하려고하지만 AJAX가있는 URL을 통해 2 개 이상의 변수를 보내려는 데 어려움을 겪고 있습니다. 이것은 내가 지금 가지고있는 코드입니다 : 나는 단지 postname과 이메일 주소를 보내고있다 그래서 나는 부분 '= 이름 & 이름을'제거하면Jquery AJAX 및 2 개 이상의 변수와 관련된 문제

jQuery("#tellafriendsubmit").click(function() { 

     var email = jQuery('#tellafriendemail').val(); 
     var name = jQuery('#tellafriendname').val(); 

      jQuery.ajax({ 
      type: "POST", 
     url: "http://www.example.co.uk/tell-a-friend-processor-page/?postname=<?php echo $post_name; ?>&name=name&email="+email, 

     success: function(msg){ 
      alert('Your tell a friend recommendation has been sent. Thank you for recommending us.'); 

     } 
    }); 

}); 

, 그것은 잘 작동하지만 난을 보낼 필요 이름뿐 아니라 '친애하는 $ 이름 ....'이라고 쓸 수 있습니다.

어떻게 3 차 변수를 추가로 보낼 수 있습니까? 어떤 도움을 주셔서 감사합니다

편집 :

나는 tellafriendprocessor 페이지에서 사용하고 부분은 다음과 같습니다

$ 이메일 = $ _POST [ '이메일']; $ post_name = $ _GET [ 'postname']; $ name = $ _POST [ 'name'];

   $to = $email; 
      $subject = "Example - Tell a friend"; 
      $body = "Dear $name http://www.example.co.uk/ads/$post_name"; 

      if (mail($to, $subject, $body, $headers)) { 

       } else { 

       } 

답변

1

당신은 그 가치가 제대로 인코딩되는 것을 보장 할합니다 (data 속성을 사용) POST 요청 본문의 일부로 전송 시도 할 수 :

서버 측에
var email = jQuery('#tellafriendemail').val(); 
var name = jQuery('#tellafriendname').val(); 
jQuery.ajax({ 
    type: 'POST', 
    url: 'http://www.example.co.uk/tell-a-friend-processor-page/?postname=<?php echo $post_name; ?>', 
    data: { name: name, email: email }, 
    success: function(msg) { 
     alert('Your tell a friend recommendation has been sent. Thank you for recommending us.'); 
    } 
}); 

것은 당신이 있는지 확인 $_POST 해시 ($_POST["name"]$_POST["email"])에서 읽습니다.

+0

답장을 보내 주셔서 감사합니다. 답변을 드렸지만 여전히 작동하지 않습니다 (알림 기능이 표시되지 않아 이전에 손상되었을 수 있음). 다른 파일에서도 내 질문을 편집했습니다. 제발 내가 뭔가 잘못하고있는 것을 볼 수 있습니까? –

+0

@Daniel H, FireBug로 AJAX 요청이 서버로 전송 된 응답과 반환 된 응답을 분석해보십시오. 또한 자바 스크립트 오류가 없는지 확인하십시오. 내가 볼 수있는 것은 일부 버튼의 클릭 이벤트에 가입하고 있지만, .click 콜백에서 거짓을 반환하지 않는다는 것입니다. '# tellafriendsubmit'이 앵커 또는 양식 제출 버튼 인 경우 AJAX는 절대로 시간을 가질 수 없습니다 페이지가 리디렉션 될 때 실행할 수 있습니다.또한'$ post_name' PHP 변수에'''와 같은 문자가 포함되어 있으면 자바 스크립트가 손상 될 수 있습니다. –

+0

안녕하세요 대린, HTML/CSS를보기 위해 방화 녀를 사용하지만 AJAX를 사용하여 호출하는 방법을 모르겠습니다. 어디서 볼 수 있습니까? 감사합니다 –

0

문자열 바깥으로 name을 이동해야합니다. 그리고 당신은 그냥 쿼리 문자열로 추가 더 키 - 값 쌍 추가 : & 키 = 값을

url: "http://www.example.co.uk/tell-a-friend-processor-page/?postname=<?php echo $post_name; ?>&name="+name+"&email="+email 
+0

안녕하세요 Zanathel, 미안 해요 내 질문에 언급 했어야 만 내가 자바 스크립트 변수 이름을 추가하기 전에 그것을 테스트하기 위해 거기에 값 이름을 넣어했습니다, 나는 그것을 시도하고 그것을 작동하지 않았다 –

0

시도는 다음과 같이 PARAMS의 객체를 사용합니다 :

$.post("/tell-a-friend-processor-page/", { name: "John", email: "<?php echo $post_email; ?>", post_name: "<?php echo $post_name; ?>" }, 
function(data) { 
    alert("Data Loaded: " + data); 
}); 
1

당신이 당신의 매개 변수를 보낼 수 있습니다 이 코드 조각 GET 및 POST 방법에 의해 AJAX있는 페이지로

데이터 {ID 'ID'이름 '이름'} // 여기 AJAX

를 사용하여 전송 된 복수의 데이터가있다 N 예를

$ 아약스 ({ 유형 : 거짓, URL : : 캐시 "GET", "welcome.php을" 데이터 : {ID : '아이디', 이름 : '이름'}// ajax를 사용하여 전송 된 여러 데이터 성공 : function (html) { $ ('# add'). val ('보낸 데이터 전송'); $ ('msg') .html (html); } });

관련 문제