PDA

View Full Version : حرفه ای: مقدار دهی متغیر متغیر با آژاکس



habibvafapour
دوشنبه 16 اردیبهشت 1392, 14:00 عصر
سلام دوستان
میخواستم به وسیله آژاکس متغیر PHP داخل صفحه جاری رو مقدار دهی کنم ولی به مشکل برخورد کردم و متغیر مقدار دهی نمیشود میخواستم بودنم مشکل کارم کجاست


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<script src="jquery-1.6.1.min.js" language="javascript" type="text/javascript"></script>
<script language="javascript" type="text/javascript">
$(document).ready(function(){
$('.mn').click(function(){
$.ajax({
type:"post",
url:"index.php",
data : {habib:'habibvafapour'},
success:function(html){
$('body').html(html)
}
});
}); });
</script>
</head>
<?php
$a = $_POST['habib'];
?>
<body>
<a href="habib.php?n=<?php echo $a; ?>"><div class="m" style="height:200px;width:300px;background-color:#096"></div></a>
<div class="mn" style="height:400px;width:200px;background-color:#6FF"></div>
</body>
</html>
ممنون میشم کمک کنید

habibvafapour
دوشنبه 16 اردیبهشت 1392, 14:05 عصر
خودم مشکل رو حل کردم.
فقط یه سوال برام پیش اومده که وقتی میخواهم اطلاعات رو به متغییر بفرسم چرا دوباره باید پارامتر success آژاکس رو صدا بزنم ؟

engmmrj
دوشنبه 16 اردیبهشت 1392, 14:49 عصر
به این مثال دقت کنین :

$(document).ready(function(){
$.ajax({
type:"POST",
url:"post.php",
data:'name=mehdi'+'lname=mehdi',
success: function(result){
$('#result').html(result);
}
});
});
دو متغیر به نام name و lname تعریف شده که هر کدام مقدار دهی شده و نتیجه آن را در آیدی result میریزیم.

habibvafapour
دوشنبه 16 اردیبهشت 1392, 16:05 عصر
الان دقیقاا مشکل من اینجاست
که با پارامتر data اطلاعات رو به صفحه ارسال کردم .
ولی در زمان دریافت میخواهم متغیری رو مقدار دهی کنم نه این که رشته ای چاپ کنم

mahmod2000
دوشنبه 16 اردیبهشت 1392, 18:57 عصر
از همین روشی که استفاده کردید json هم میشه انجام داد.. که اطلاعات دریافتی رو میریزید تو یک آرایه و مقدار رو با json_encode بر میگردونید به success و هرجا که خواستید میتونید مقداردهی کنید

habibvafapour
دوشنبه 16 اردیبهشت 1392, 23:26 عصر
من الان دقیقاا فقط میخواهم متغیر PHP رو در صفحه که هستم رو مقدار دهی کنم .

MMSHFE
سه شنبه 17 اردیبهشت 1392, 08:40 صبح
دوست عزیز نمیشه! اصرار بر کاری که ازنظر اصولی ممکن نیست، معنا نداره. اون چیزی که الآن شما توی Browser دارین میبینین، نتیجه اجرای PHP هست نه خود اسکریپت PHP یعنی مقدار متغیر echo شده و خود متغیر دیگه الآن اصلاً توی RAM هم نیست که بخواین مقدارش رو تغییر بدین. HTML هم که یک زبان Stateless هست و وضعیتها (مقادیر قبلی و...) رو نگهداری. نمیکنه تنها راه ممکن اینه که متغیرتون توی Session یا Cookie ذخیره کنید و توی صفحه ای که با AJAX صدا میزنید، مقدار موجود در Cookie یا Session رو تغییر بدین تا در سایر صفحات سایتتون هم مقدار جدید مورد استفاده قرار بگیره.