2017-01-19 1 views
-1

저는 javascript, jQuery 및 PHP를 사용하는 WordPress 페이지를 작성하고 있습니다. 전달 된 값 중 QRcode를 페이지에 생성합니다. 생성 된 후, data : image/png; base64 형식의 QRcode의 src를 추출합니다. 문제는 메서드를 사용하지 않고이 문자열을 PHP에 전달하는 것입니다. 페이지가로드 될 때 전송되는 HTML 형식의 전자 메일을 양식화해야합니다. AJAX에 익숙하지 않지만 PHP 함수에 값을 전달할 수있는 URL() 메서드가 있다는 것을 알고 있습니다.

여기에 필자가 작성한 코드가 있습니다 (예, 중복되고 성급한 ...) : 도착하면 장치에 저장하고 표시하십시오!

<div id="qrcode"></div> 
<form method="post"> 
<input type="text" name="image" id="image"></input> 
<input type="submit" value="Send to e-mail"></input> 
</form> 
[gravityform id="3" title="false" description="false"] //Hidden form with values for QRcode 
<script type="text/javascript" src="http://yourjavascript.com/10124121272/qrcode.js"></script> 
<script> 
var email = document.getElementById("input_3_1").value; 
var date = document.getElementById("input_3_2").value; 
var type = document.getElementById("input_3_3").value; 
var id = document.getElementById("input_3_4").value; 
var qrcode = new QRCode("qrcode", { 
    text: "Email of buyer: "+email+"; Type of an offer: "+type+"; Date of purchase: "+date+"; ID: "+id, 
    width: 256, 
    height: 256, 
    colorDark : "#000000", 
    colorLight : "#ffffff", 
    correctLevel : QRCode.CorrectLevel.H 
}); 
jQuery(document).ready(function($) { 
var image = jQuery('img[alt="Scan me!"]').attr('src'); 
jQuery('#image').val(image); 
}); 
</script> 

[insert_php] 
add_filter('wp_mail_content_type', 'wpdocs_set_html_mail_content_type'); 
$to = $_GET[email]; 
$image = Some magical approach to get base64 image from form name="image" 
$subject = 'Subject of an email'; 
$message = '<html><head><body> 
<h1>Hello! Here is your QRcode!</h1> 
<img src=$image /> 
</body></head><html>' 
wp_mail($to, $subject, $message); 
remove_filter('wp_mail_content_type', 'wpdocs_set_html_mail_content_type'); 
function wpdocs_set_html_mail_content_type() { 
    return 'text/html'; 
} 
[/insert_php] 
+0

누구든지 다운 된 이유는 알 수 있습니까? –

+1

나는 당신에게 다운 폰트를하지 않았지만, 말 그대로 문제는 말도 안되기 때문이라고 생각한다. 서버에 무언가를 보내지 않고 서버로 보낼 수는 없습니다. 나는 당신이 무엇을보고 있는지 알고 있고 당신에게 지금 대답을 쓰고 있다고 생각합니다 ... – Brad

+0

나는 투표를하지 않았지만 AJAX가 필요한 모든 것을하기 위해 PHP 스크립트에 데이터를 보낼 수 있다는 것이 맞습니다. –

답변

2

문제는 어떤 방법을 사용하지 않고 PHP이 문자열을 전달이다.

메소드/동사는 HTTP 요청의 핵심 부분으로, PHP 스크립트로 데이터를 보내려는 경우에 필요합니다. 이 어떤 종류의 HTTP 요청을해야합니다.

쉽게 AJAX를 사용하여 스크립트에 데이터를 가져올 수 있습니다.

$.post(
    '/yourScript.php' 
    qrCodeStringData 
    'text/plain' 
).then(function() { 
    // Do something if successful 
}).catch(function() { 
    // Do something if failure 
}); 

또한 QR 코드에서 자신 만의 데이터 형식을 고안 한 것처럼 보입니다. JSON을 사용하여 데이터 구조화에 대해 걱정할 필요가 없습니다. JSON과 같은 잘 알려진 형식을 사용하면 처리 할 필요가 없다는 것을 의미합니다.)

관련 문제