jQuery를 사용하여 PHP $ _SESSION 변수를 설정해야합니다. 사용자가 이미지를 클릭하면 해당 이미지와 관련된 정보를 PHP의 세션 변수로 저장하려고합니다.
PHP 페이지 나 함수를 호출하고 해당 정보를 쿼리 문자열에 추가하여이 작업을 수행 할 수 있다고 생각합니다.
아이디어가 없습니다. 나는 구글을 통해 거의 도움이되지 않았다.
감사 마이크
jQuery를 사용하여 PHP $ _SESSION 변수를 설정해야합니다. 사용자가 이미지를 클릭하면 해당 이미지와 관련된 정보를 PHP의 세션 변수로 저장하려고합니다.
PHP 페이지 나 함수를 호출하고 해당 정보를 쿼리 문자열에 추가하여이 작업을 수행 할 수 있다고 생각합니다.
아이디어가 없습니다. 나는 구글을 통해 거의 도움이되지 않았다.
감사 마이크
jQuery만으로는이 작업을 수행 할 수 없습니다. Ajax (jQuery로 할 수있는)와 PHP 백엔드의 조합이 필요하다. 아주 간단한 버전은 다음과 같습니다
HTML :
<img class="foo" src="img.jpg" />
<img class="foo" src="img2.jpg" />
<img class="foo" src="img3.jpg" />
자바 스크립트 :
$("img.foo").onclick(function()
{
// Get the src of the image
var src = $(this).attr("src");
// Send Ajax request to backend.php, with src set as "img" in the POST data
$.post("/backend.php", {"img": src});
});
PHP (backend.php) :
<?php
// do any authentication first, then add POST variable to session
$_SESSION['imgsrc'] = $_POST['img'];
?>
다른 PHP 페이지에서 PHP 함수를 넣어 시도하고 변수를 설정하는 AJAX 호출을 사용 할 수 있습니다.
무엇을 찾고 계십니까? jQuery Ajax입니다. 그런 다음 PHP 페이지를 설정하여 요청을 처리하십시오.
여기에 대한 많은 답변이 방법을 다루지 만 이유는 다루지 않습니다. PHP $ _SESSION 키/값 쌍이 서버에 저장됩니다. 이것은 브라우저에 저장된 쿠키와 다릅니다. 따라서 PHP와 JavaScript 모두에서 쿠키의 값에 액세스 할 수 있습니다. 아쉽게도 브라우저에서 보낸 AJAX 요청에는 웹 사이트에 설정 한 쿠키가 포함되어 있지 않습니다. 따라서 JavaScript가 세션 ID 쿠키를 가져 와서 서버가 그 헤더 또는 꼬리를 만들 수 있도록 모든 AJAX 요청에 포함시켜야합니다. 밝은면에서 PHP 세션은 쿠키가 HTTP 헤더와 함께 전송되지 않으면 HTTP GET 또는 POST 변수로 장애 조치되도록 설계되었습니다. RESTful 웹 응용 프로그램의 원칙과 세션 처리기를 사용하여 mangle을 시도하는 대신 이러한 종류의 응용 프로그램과 공통되는 디자인 패턴을 사용하는 방법에 대해 살펴 보겠습니다. (backend.php) 포함해야합니다에
) (
으로 session_start를 포함한다; http://www.hawkessolutions.com
-Taylor 는 또한 (여기에. 누가 복음 데니스 솔루션과 유사한 별거를) 자신에 의해 "PHP 세션 값 세터"솔루션을 설계,하지만 내 세션 값을 설정 한 후, 내 요구 "했다 다른 .php 파일로 점프 ". 당신 - 후
"$ .post"당신의 값들에 : 좋아,
내 문제가 가지 쉬웠다 ... 내 jQuery 코드 내부를했다 ...하지만 뭔가 확실히 일을하지 않았다 작은 .php 파일이면, "성공/실패"리턴 값을 기다려야하고,이 성공 값을 읽은 후에 만 점프를 수행하십시오. 만약에 당신이 바로 다음 큰 것에 뛰어 들면.php 파일에서 세션 값이 PHP 세션 런타임 엔진에 설정되지 않았을 수 있으며 $ _SESSION [ "my_var"]을 수행 할 때 "비어 있음"을 읽게됩니다. 대상 .php 파일에서. 내 경우
은, 그 상황을 해결하기 위해, 내 jQuery를 $의 .post 코드이 방법 변경 :
물론$.post('set_session_value.php', { key: 'keyname', value: 'myvalue'}, function(ret){
if(ret==0){
window.alert("success!");
location.replace("next_page.php");
}
else{
window.alert("error!");
}
});
, 당신의 "set_session_value.php"파일 '이 "0"에코 반환해야합니다을; '또는'echo "1"; '(또는 당신이 필요로하는 성공 가치).
인사말.
루크의 대답과 비슷하지만 GET이 있습니다.
이 PHP 코드를 PHP 페이지에 넣으십시오 (예 : getpage.php :
는<?php
$_SESSION['size'] = $_GET['size'];
?>
다음과 같은 jQuery를 스크립트로 전화 :
$.get("/getpage.php?size=1");
를 페데리코에 동의합니다. 경우에 따라 POST와 관련된 문제 일 수도 있지만 브라우저와 관련이 있는지는 확실하지 않습니다.
javascript 부분에서 onClick()을 click()으로 변경하면 Firefox에서 작동합니다. 누락으로 session_start
$("img.foo").click(function()
{
// Get the src of the image
var src = $(this).attr("src");
// Send Ajax request to backend.php, with src set as "img" in the POST data
$.post("/backend.php", {"img": src});
});
(); 그 이외의 백엔드에서 이것은 훌륭한 팁입니다! 감사합니다 루크 ... – Codex73