PDA

View Full Version : مبتدی: آوردن متغیر html مثل textbox به داخل کد php



parniyan2
جمعه 10 خرداد 1392, 23:36 عصر
شاید خیلی ساده باشه. ولی من تو تاپیک ها گشتم و به جواب قانع کننده ای نرسیدم
چرا خروجی کد زیر nist میشه. مگه نباید 1000 رو چاپ کنه؟ مگه textbox1 رو نمیشناسه؟ ضمن اینکه وقتی شرط رو بر می دارم پیغام undefined میده


<body>
<form action="form1" name="form1" method="POST">
<p>
<input name="textbox1" type="text" id="textbox1" value="1000" />
<?php
if(isset($_POST[`textbox1`]))
{
echo $_POST[`textbox1`];
}
else
{
echo 'nist';
}
?></p>

MMSHFE
شنبه 11 خرداد 1392, 00:20 صبح
<!doctype html>
<html>
<head>
<title>Form1</title>
<meta charset="utf-8" />
</head>
<body>
<form action="" method="post">
<input name="textbox1" type="text" value="1000" />
<input type="submit" value="Send" />
</form>
<?php
if(isset($_POST['textbox1'])) {
echo '<p>' . $_POST['textbox1'] . '</p>' . PHP_EOL;
}
else {
echo '<p>Nist</p>' . PHP_EOL;
}
?>
</body>
</html>

بجز اضافه کردن یکسری تگ برای استانداردسازی کد، مواردی که باعث شده بود کد شما کار نکنه اینهاست:
1- دکمه Submit برای فرم نگذاشته بودین. درنتیجه هیچوقت مقدار کادر متن ارسال نمیشه.
2- در آرایه های با اندیس رشته ای، اندیس توی کوتیشن تک ' یا جفت " قرار میگیره نه کوتیشن معکوس `

engmmrj
شنبه 11 خرداد 1392, 00:34 صبح
فکر کنم منظور ایشون این بود که چرا وقتی این page رو لود میکنن و textbox1 داری مقدار 100 است ، چرا error میده .

patmat2
شنبه 11 خرداد 1392, 00:41 صبح
به نظر من که اولا action اشتباه انتخاب شده. باید صفحه مقصد رو انتخاب کنی. بعد دستورات php رو تو صفحه مقصد بذاری . تازه باید تغییراتی رو هم بدی.
من اینکارو کردم.
تو صفحه اولت این تغییراتی رو دادم:


<body>
<form action="test2.php" name="form1" method="POST">
<p>
<input name="textbox1" type="text" id="textbox1" value="1000" />
<input name="" type="submit" value="sabt" />
</p>
</form>

</body>


و بعدش تو صفحه مقصدaction یعنی test2.php کدهای php رو بذاری که اونم تغییراتی بهش دادم.



<?php

if(isset($_POST['textbox1']))
{
echo ''.$_POST['textbox1'].'';
}
else
{
echo 'nist';
}
?>


این طوری حتما جواب می گیری....

patmat2
شنبه 11 خرداد 1392, 00:59 صبح
<!doctype html>
<html>
<head>
<title>Form1</title>
<meta charset="utf-8" />
</head>
<body>
<form action="" method="post">
<input name="textbox1" type="text" value="1000" />
<input type="submit" value="Send" />
</form>
<?php
if(isset($_POST['textbox1'])) {
echo '<p>' . $_POST['textbox1'] . '</p>' . PHP_EOL;
}
else {
echo '<p>Nist</p>' . PHP_EOL;
}
?>
</body>
</html>

بجز اضافه کردن یکسری تگ برای استانداردسازی کد، مواردی که باعث شده بود کد شما کار نکنه اینهاست:
1- دکمه Submit برای فرم نگذاشته بودین. درنتیجه هیچوقت مقدار کادر متن ارسال نمیشه.
2- در آرایه های با اندیس رشته ای، اندیس توی کوتیشن تک ' یا جفت " قرار میگیره نه کوتیشن معکوس `


مهندس!!
این کدی که شما گذاشتی همزمان با لود صفحه کلمهNIST هم که نمایش داده میشه. اون کدی که من نشتم دست نیست؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟

engmmrj
شنبه 11 خرداد 1392, 01:28 صبح
مهندس!!
این کدی که شما گذاشتی همزمان با لود صفحه کلمهNIST هم که نمایش داده میشه. اون کدی که من نشتم دست نیست؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟
درست صحبت کنید مهندس یعنی چی ، به دلیل اینکه هنوز مقداری ارسال نشده ، میتونید دستور else رو حذف کنید .

patmat2
شنبه 11 خرداد 1392, 01:45 صبح
درست صحبت کنید مهندس یعنی چی ، به دلیل اینکه هنوز مقداری ارسال نشده ، میتونید دستور else رو حذف کنید .

چی؟؟؟؟؟؟؟؟
مهندس یعنی چی؟؟؟؟

مگه مهندس گفتن چیه . . حالا چرا به تو برمیخوره؟؟؟؟؟؟؟؟؟؟؟؟؟
اون دستور else براش حتما لازم بوده. دیگه که گذاشته. باید جایی بذاره که بعد از ارسال فرم پردازش شه.منم همین نکته رو گفتم.

فرزند کوروش
شنبه 11 خرداد 1392, 08:37 صبح
چرا خروجی کد زیر nist میشه. مگه نباید 1000 رو چاپ کنه؟ مگه textbox1 رو نمیشناسه؟ ضمن اینکه وقتی شرط رو بر می دارم پیغام undefined میده
بینید دوست گرامی. شما تا مقداریو ارسال نکنی نمیتونی جوابی هم بگیری. باید اطلاعاتی به سرور ارسال بشه که پاخی هم براش بیاد.
در حالت عادی شما فقط nist رو خواهید دید مگر اینکه شرطی بنویسی که تا فرمت ارسال نشده باشه هیچ چیزی چاپ نکنه.
من رو کد جناب شهرکی این کار رو انجام دادم البته با اجازه ایشون

<!doctype html>
<html>
<head>
<title>Form1</title>
<meta charset="utf-8" />
</head>
<body>
<form action="" method="post">
<input name="textbox1" type="text" value="1000" />
<input type="submit" value="Send" name="send"/>
</form>
<?php
if(isset($_POST['send'])) {
if(isset($_POST['textbox1'])) {
echo '<p>' . $_POST['textbox1'] . '</p>' . PHP_EOL;
}
else {
echo '<p>Nist</p>' . PHP_EOL;
}
}
?>
</body>
</html>

وقتی روی دکمه ارسال کلیک کنی مقادیر ارسال میشن و عدد مورد نظرت چاپ میشه.

parniyan2
شنبه 11 خرداد 1392, 13:22 عصر
با تشکر از همه دوستان بالا.
مشکل من اینه که می خوام هر وقت صفحه لود میشه مقدار 1000 چاپ بشه. اصلاً نیازی به دکمه ندارم

فرزند کوروش
شنبه 11 خرداد 1392, 14:35 عصر
خوب دیگه چرا این همه پیچیدگی پس از اول همینو میگفتی :دی
میتونی یه ایف تعریف کنی که اگه فرم ارسال نشده بود 1000 رو پیش فرض بنویسه.

if(isset($_POST['textbox1'])) {
echo '<p>' . $_POST['textbox1'] . '</p>' . PHP_EOL;
}else{
echo '<p>1000</p>' . PHP_EOL;
}

parniyan2
شنبه 11 خرداد 1392, 17:36 عصر
خوب دیگه چرا این همه پیچیدگی پس از اول همینو میگفتی :دی
میتونی یه ایف تعریف کنی که اگه فرم ارسال نشده بود 1000 رو پیش فرض بنویسه.
نه. اصلاً شرط رو ولش کن. می خوام وقتی صفحه لود میشه دستور زیر اجرا بشه و مقدار 1000 چاپ بشه

echo '<p>' . $_POST['textbox1']

Tarragon
شنبه 11 خرداد 1392, 18:03 عصر
سلام
اساسا خسته نباشی !

echo 1000;

parniyan2
شنبه 11 خرداد 1392, 21:51 عصر
اساسا خسته نباشی !
منظور منو نگرفتین
ببینید من می خوام وقتی صفحه لود میشه تمام تکس باکس های توی صفحه مقدارش چاپ بشه.(بدون اینکه دکمه ای کلیک بشه) به وسیله کد پی اچ پی چطور میشه این کارو کرد؟ نمی دونستم اینقدر سخته که دوستانو گیج می کنه!!!!

shahriyar3
شنبه 11 خرداد 1392, 22:38 عصر
فکر کنم منظورت اینه که وقتی صفحه لود میشه تمام این دستورات شرط ها هم اجرا بشه و چاپ بشه درسته؟
اگر منظورت این بود باید از ajax استفاده کنی
یک event تعریف کنید تمام این شرط ها رو بزار توی اون صفحه ای که این event بهش اشاره میکنه و خروجی رو توی این صفحه نشون بده
یکمی ajax بلد باشید میشه درستش کرد راحت

parniyan2
شنبه 11 خرداد 1392, 23:58 عصر
اگر منظورت این بود باید از ajax استفاده کنی
احسنت... همین. دوست عزیز کد آژاکسش چه جوری نوشته میشه؟ لابلای کد html یا تو یه فایل جداگانه؟ من به یک کتاب در زمینه آزاکس مراجعه کردم ولی چیزی دستگیرم نشد چون خیلی پیچیده است. میشه منو راهنمایی کنید؟

shahriyar3
یک شنبه 12 خرداد 1392, 00:19 صبح
ته فایل توی تگ اسکریپت


$(document).ready(function(){
$.ajax({ url: "ajax.php",

parniyan2
یک شنبه 12 خرداد 1392, 18:23 عصر
ته فایل توی تگ اسکریپت
کل کد مربوط به برنامه چاپ محتوای تکس باکس رو میشه برام بنویسید. ممنون میشم