PDA

View Full Version : گرفتن مقدار input hidden بدون ارسال فرم



trasilver
چهارشنبه 16 مرداد 1392, 06:50 صبح
سلام و عرض ادب خدمت همگی برنامه نویسان عزیز .
خسته نباشید .
دوستان من یک input hidden دارم که با استفاده از دستور جاوا بهش مقدار داده میشه . یعنی طرف کلیک میکنه روی یک عکس و با استفاده از جاوا که تعیین کردم یک صفحه فرم براش باز میشه و یک عدد input hidden هم اونجا هستش که جاوا مثلا بهش مقدار 1 رو میده .
حالا سوالی که داشتم این بود هر کاری می خوام بکنم که این مقدار رو قبل از ارسال فرم توی یک متغیر php تعریف کنم نمی تونم !!!
دوستان عزیز کدی دارن که بتونه مقدار این input hidden رو بگیره یا این که یه جوری بشه اون مقدار رو برای یک متغیر php تعریف کرد ؟
با تشکر .

فرزند کوروش
چهارشنبه 16 مرداد 1392, 11:07 صبح
با همون جاوا مقدار داخل فیلد رو بصورت ای جکس بفرست سمت سرور( هیدن بودن یا نبودن فرقی نمیکنه ، به همون شکلی که اینپوتهای دیگه رو میفرستی اینم میتونی بفرستی )

iranme
چهارشنبه 16 مرداد 1392, 11:31 صبح
اولا فکر کنم منظورت از جاوا، جاوا اسکریپت هستش. این دو تا را با هم اشتباه نگیریم هیچ وقت!

در مورد سوالت هم تا جائیکه من متوجه شدم میخوای این متغیر رو درون همون صفحه که هست قرار بدی و بعدش اون فرم را ارسال کنی! اگر منظورت این هست نمیتونی چون php سرور ساید هستش و جاوااسکریپت کلایت ساید. باید کل فرم را با Ajax بفرستی سمت سرور!

trasilver
چهارشنبه 16 مرداد 1392, 11:45 صبح
سلام مجدد .
بله همون جاوا اسکریپت منظورم بود :لبخند:
من والا حقیقت زیاد جاوا اسکریپت و ای جکس رو بلد نیستم ... ولی پی اچ پی رو خوب بلدم :لبخند: هدف من این هستش که اون hidden فیلدی که دارم رو به هر نحوی که شده بدون اینکه کاربر روی چیزی کلیک بکنه یا کاری بکنه بکشونم توی یک متغیر php
مثلا بشه

$a = $_POST['a'];

iranme
چهارشنبه 16 مرداد 1392, 12:02 عصر
خب اگر قرار باشه که کاربر روی چیزی کلیک نکنه و متغیر ست بشه چرا از اول که صفحه لود میشه مقدار نمیدی؟

trasilver
چهارشنبه 16 مرداد 1392, 12:20 عصر
کاربر در واقع برای بار اول یک کلیک انجام میده . یک لیست هستش و میاد یکی رو انتخاب می کنه . توی این انتخاب کردن بخاطر گرافیک و این چیزا دیگه از submit استفاده نکردیم و از کد جاوا اسکریپت استفاده کردیم که change class میده . قسمت فرم یک hide جلوی classesh نوشته شده که میاد اون رو حذف می کنه و فرم رو باز می کنه . لیست تموم جنس هایی که هستش برداشته میشه و فقط اون جنس توی صفحه می مونه که انتخابش کرده . بعدش هم که پایینش فرم هست و پر می کنه . حالا من می خوام اون input رو بگیره که با جاوا اسکریپت مقدار دهی داده میشه که ببینیم در واقع کدوم جنس رو انتخاب کرده که نشونش بده :لبخند: امید وارم متوجه شده باشید چی به چی شد :لبخند: همین ای جکسی که میگید باهاش فرم رو ارسال کنم میشه یه کد ساده مثال بزنید من چنجش بدم و با فایل خودم مچ بکنم ؟

iranme
چهارشنبه 16 مرداد 1392, 12:38 عصر
فکر کنم بتونی از session هم استفاده بکنی. اون مقدار hidden field رو با Ajax توی یک session ذخیره کن بعد از اینکه کاربر فرم را ارسال کرد میتونی مقدار اون فیلد را از session فراخوانی کنی.

برای Ajax هم من jquery رو بهت پیشنهاد میکنم که خیلی ساده هست. (البته اگر بلد نیستی)

این api های سایت جی کوئری: http://api.jquery.com/
برای ajax هم این قسمت: http://api.jquery.com/category/ajax/

مثال هاش ساده است، میتونی راحت یاد بگیری

trasilver
پنج شنبه 17 مرداد 1392, 18:47 عصر
سلام و عرض ادب .
ببخشید بابت پیام .
من خوندم ولی چیز زیادی دست گیرم نشد متاسفانه ! اگه زحمتی نیست و قادر هست براتون با یک فرم ساده یک مثال برای بنده بزنید .
با تشکر .

trasilver
جمعه 18 مرداد 1392, 02:55 صبح
شرمنده بابت اسپم ...
کسی از دوستان نبود یه کمکی به ما بکنه ؟

فرزند کوروش
جمعه 18 مرداد 1392, 09:38 صبح
این همه جواب دادن ، شما یه مقدار پیش برو مشکل داشتی باز بپرس کمکت میکنن.

AliRezaPro
جمعه 18 مرداد 1392, 11:48 صبح
شما باید با ajax پست کنید و از php دریافت کنید
نمونه کد :
$.ajax({
type: "POST",
url: "ajax_more.php",
data: "lastmsg="+ ID,
cache: false,
success: function(html){
$("div#listednotes").append(html);
$("#more"+ID).remove();
}
});
و تو php میتونید با

$_POST['lastmsg']
بگیرید

trasilver
جمعه 18 مرداد 1392, 20:01 عصر
شما باید با ajax پست کنید و از php دریافت کنید
نمونه کد :
$.ajax({
type: "POST",
url: "ajax_more.php",
data: "lastmsg="+ ID,
cache: false,
success: function(html){
$("div#listednotes").append(html);
$("#more"+ID).remove();
}
});
و تو php میتونید با

$_POST['lastmsg']
بگیرید

سلام مجدد . تست کردم متاسفانه جواب نداد !
کد بنده :

<form name="registration" id="registration" method='POST'>
<input name="s" id="s" type="hidden" value='2'/>
<script type="text/javascript">
$.ajax({
type: "POST",
url: "#",
data: "s="+ ID,
cache: false,
success: function(html){
$("div#listednotes").append(html);
$("#more"+ID).remove();
}
});
</script>
<?php echo $_POST['s']; ?>
</form>

saadatieathar
جمعه 18 مرداد 1392, 20:53 عصر
سلام.
يك نمونه ارسال و درياف با آجاكس
يك فايل به نام r.php بسازيد با اين محتوا :



<?php
$response=$_GET["txt"];
echo $response;
?>

و كنارش يك فايل ديگه بسازيد مثلا test.php با اين محتوا :



<!DOCTYPE html>
<html>
<head>
<script>
function showHint(str)
{
var xmlhttp;
if (str.length==0)
{
document.getElementById("txt").innerHTML="";
return;
}
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("txt").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","r.php?txt="+str,true);
xmlhttp.send();
}
</script>
</head>
<body>
<form action="">
type your name :
<input type="text" id="txt1" onkeyup="showHint(this.value)" />
</form>
<p>
<span id="txt"></span>
</p>

</body>
</html>

حالا فايل test.php رو اجرا كنيد.

trasilver
جمعه 18 مرداد 1392, 21:30 عصر
ممنون دوستان مشکل رو با GET حل کردم ...
این ای جکس هم خداییش خیلی چرته ها :لبخند: خداییش فقط php :قلب:
ممنون و تشکر فراوان از دوستانی که کمک کردند . انشاالله بتونم جبران کنم ... :بوس:

MRmoon
جمعه 18 مرداد 1392, 22:30 عصر
ممنون دوستان مشکل رو با GET حل کردم ...
این ای جکس هم خداییش خیلی چرته ها :لبخند: خداییش فقط php :قلب:
ممنون و تشکر فراوان از دوستانی که کمک کردند . انشاالله بتونم جبران کنم ... :بوس:
اين حرف شما مثل حرف كسايي هست كه فريم ورك رو درك نمي كنن ميگن خيلي چرته!