PDA

View Full Version : سوال: تغییر مقدار سشن با کلیک روی لینک



havash064
جمعه 29 مرداد 1395, 22:01 عصر
سلام دوستان . من توی صفحه ی php خودم می خوام وقتی روی یک دکمه کلیک می کنم یک مقدار خاص به سشنم داده بشه . اما مقدار سشن همیشه مقدار آخرین سشنی هست که توی صفحه ی کد نویسی نوشتم . اون هم بدون کلیک . با اینکه من کد رو توی قسمت onclick می نویسم .


<p class="mmeno" onclick="<?php $_SESSION['views']=41 ?>" >صفحه ی اول</p>
<p class="mmeno" onclick="<?php $_SESSION['views']=60 ?>" >صفحه ی اول</p>




کد بالا رو که وارد می کنم سشن مقدارش 60 می شه . یعنی آخرین مقداری که توی آنکلیک وارد کردم . ممنون می شم راهنمایی کنین که چجوری با کلیک روی متن یا دکمه مقدار سشن رو تغییر بدم .

مهرداد سیف زاده
شنبه 30 مرداد 1395, 04:56 صبح
روش شما اشتباه هست
الان کد شما داره بر اساس onclick کار نمیکنه. چون کد php در زمان بالا اومدن صفحه اجرا میشه و مقدار SESSION رو قرار میده و اصلا به onclick توجهی نداره. برای این کار باید از ajax استفاده کنید. بصورت زیر
در سمت ui به کمک jauery و ajax


<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<script type="text/javascript" src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-2.2.2.js"></script>






<p class="mmeno" onclick="return send_session('41');" >صفحه ی اول</p>
<p class="mmeno" onclick="return send_session('60')" >صفحه ی اول</p>




<script type="text/javascript">
function send_session(number){
$.ajax({
url: 'session.php',
type: 'POST',
dataType: 'html',
data: {'number': number},
})
.done(function(data) {
console.log("success",data);
})
.fail(function() {
console.log("error");
});

}
</script>


</body>
</html>


در سمت backend با php


<?php


$number = isset($_POST['number'])?$_POST['number']:null;


if($number != null){
$_SESSION['views']=$number;
echo 'ok';
}else{
echo 'number not defined';
}






?>