2014-03-19 4 views
-1

내 사이트의 사용자는 두 곳에서 세션 변수를 저장할 수 있습니다. 1. 단일 신청자 페이지의 PHP 양식. 2. 모든 apllicants 페이지에 대한 AJAX 양식. WP 세션 관리자를 사용하여 세션 변수를 저장합니다. PHP 폼은 잘 작동하고 세션에 값을 삽입합니다. $ wp_session [$ value] = $ applicantid; 이 PHP 형태로 작동하는데 사용하더라도 이제 AJAX 폼 ([$ ID]가 '확인'값을 갖지만 AJAX 형태 것을 리턴하지 않는 $ wp_session 에코), 그것을 인식하지 못하는AJAX 양식 (Wordpress)에서 세션 변수 사용

echo '<input type="checkbox" id="checking" value="'.get_the_ID().'" name="'.get_the_ID().'" style="margin-top:5px;"'; 
echo $wp_session[$ID]; 
echo '/>Connect'; 

function get_my_option() 
{ 
if ($_POST && isset($_POST['value'])) { 
$value = $_POST['value']; 
$applicantid = get_field('applicant id', $value); 
$wp_session[$value] = $applicantid; 
print($value); 
exit(); 
} 
} 

가 있는지 궁금 오전 : 아래 AJAX 폼에서 호출되는 함수는 $의 wp_session가 작성되지 않는 경우도 (그러나 함수가 호출이 AJAX에 대한 값을 반환로, 그 부분은 잘 작동) AJAX에 변수를 저장하는 다른 방법이나 내가 여기서 잘못된 것을하고 있다면. 내가 원하는 것은 방문객이 단일 후보 페이지에서 후보자를 선택하고 모든 후보자 페이지에서 후보자를 선택할 수 있으며, 그 값들이 한 번에 모든 사람들에게 연락하기를 원할 때까지 기억된다는 것입니다.

답변

0

변수를 저장하는 최선의 유일한 방법은 JavaScript 쿠키를 사용하는 것이 었습니다.

document.cookie = "applicantid"+"="+encodeURIComponent(applicantid)+expires+"; path=/"; 

이 사용되었다 : PHP와 AJAX 사이에, 이제 어디서나 읽을 수 쿠키 - 이것은 JS를 사용하여 (이 경우 응답 가치 applicantid 포함) AJAX 기능의 성공 함수에서 쿠키와 PHP 페이지를 설정하는 데 사용 된 이름으로 쿠키 값을 읽을 수 (IE8을 위조하지 않고 이전 버전 .trim() 함수를 지원하지 않습니다) :

function getCookie(cname) 
    { 
var name = cname + "="; 
var ca = document.cookie.split(';'); 
for(var i=0; i<ca.length; i++) 
    { 
    var c = ca[i].trim(); 
    if (c.indexOf(name)==0) return decodeURIComponent(c.substring(name.length,c.length)); 
    } 
return ""; 
    } 

경로를 포함하는 것을 잊지 마세요 =/쿠키가 설정 사이 읽을 수 있도록 다른 페이지. 나는 이것이 누군가를 도울 수 있기를 바랍니다. 모든 downvotes 주셔서 감사합니다.