خطا در ارسال فرم
#1
Note 
سلام دوستان
من 1 فرم ساده نوشتم که ظاهرا ایرادی نداره.ولی وقتی دکمه submit رو میزنم خطا میده که Undefined index: gender in ...
نمیفهمم چرا gender رو تعریف نشده میدونه.
کد php:
<html>
<
head>
    <
title>What be ye laddie? </title>
</
head>
<
body>
    <
form action="submit_form.php" method="post">
        <
input type="radio" name="gender" value="Male"/>Male<br />
        <
input type="radio" name="gender" value="Female"/>Female<br />
        <
input type="radio" name="gender" value="Other"/>None of your business<br />
        <
input type="submit" value="submit">
    </
form>
</
body>
</
html
اینم کد صفحه submit :
کد php:
<html>
    <
head>
        <
title>What be ye laddie?</title>
    </
head>
<
body>
    <?
php
    $gender 
$_POST['gender'];
    switch(
$gender){
        case 
"Male":
        case 
"Female":
        case 
"Other":
            echo 
"<p>congradulations! You are:" .$gender"</p>";
            break;
        default:
            echo 
"<p> WARRNING :<br /> Invalid input value for gendre specified. </p>";
            break;
    }
    
?>
</body>
</html> 
مرسی

پاسخ
#2
Note 
سلام
کدتون درسته کار میکنه.

پاسخ
#3
Note 
تا قبل از ظهر جواب نمیداد، چرا خود به خود درست شده؟؟؟ همیشه با فرما این مشکل و دارم :13:
ولی هنوز 1 مشکلی داره.اگه یکی از دکمه های Radio انتخاب بشه پیام congradulations رو میده ولی اگه هیچ دکمه ای انتخاب نشه علاوه بر Warrning همون ارور Undefined index رو برای gender میده.
مگه نه اینکه فقط باید Warrning رو چاپ کنه؟

پاسخ
#4
Note 
با سلام
علتش اینه که اگه هیچ گزینه ای انتخاب نشه اصلا gender ارسال نمیشه تا بخواد تو متغیر ذخیره بشه. باید با تابع isset بررسی کنید که gender ارسال شده.
کد php:
<html>
    <
head>
        <
title>What be ye laddie?</title>
    </
head>
<
body>
    <?
php
    
if(isset( $_POST['gender'])){
        
$gender $_POST['gender'];
        switch(
$gender){
            case 
"Male":
            case 
"Female":
            case 
"Other":
                echo 
"<p>congradulations! You are:" .$gender"</p>";
                break;
            default:
                echo 
"<p> WARRNING :<br /> Invalid input value for gendre specified. </p>";
                break;
        }
    }
    
?>
</body>
</html> 

Shy
When we speak of “free software”, we're talking about freedom, not price
پاسخ
#5
Note 
BaNNer LorD نوشته است:با سلام
علتش اینه که اگه هیچ گزینه ای انتخاب نشه اصلا gender ارسال نمیشه تا بخواد تو متغیر ذخیره بشه. باید با تابع isset بررسی کنید که gender ارسال شده.
کد php:
<html>
    <
head>
        <
title>What be ye laddie?</title>
    </
head>
<
body>
    <?
php
    
if(isset( $_POST['gender'])){
        
$gender $_POST['gender'];
        switch(
$gender){
            case 
"Male":
            case 
"Female":
            case 
"Other":
                echo 
"<p>congradulations! You are:" .$gender"</p>";
                break;
            default:
                echo 
"<p> WARRNING :<br /> Invalid input value for gendre specified. </p>";
                break;
        }
    }
    
?>
</body>
</html> 

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

پاسخ
#6
Note 
maynoush نوشته است:ممنونم.
یعنی من هرجایی که فرم گذاشتم باید چک کنم که آیا فرمم مقداری گرفته یا نه؟
مشکل errorها حل شد ولی هنوز وقتی هیچکدام از دکمه ها انتخاب نمیشن WARRNING رو چاپ نمیکنه؟؟

بله
نقل قول: ولی هنوز وقتی هیچکدام از دکمه ها انتخاب نمیشن WARRNING رو چاپ نمیکنه؟؟
چون شرط برقرار نمیشه و به سویچ نمیرشه تا پیامو نشون بده
میتونید به این شکل تغییر بدید چون دستور سویچ در اینجا لازم نیست
کد php:
<html>
    <
head>
        <
title>What be ye laddie?</title>
    </
head>
<
body>
    <?
php
    
if(isset( $_POST['gender'])){
        
$gender $_POST['gender'];
        echo 
"<p>congradulations! You are:" .$gender"</p>"
    
}
    else{
            echo 
"<p> WARRNING :<br /> Invalid input value for gendre specified. </p>";
    }
    
?>
</body>
</html> 

HAPPY CODING
پاسخ
#7
Note 
سلام
فکر میکنم دلیل WARRNING واسه این باشه که اومدین از switch استفاده کردین ولی برای هر case عملیاتی تعریف نکردین- اگه میخاین برا همشون یک عملیات انجام بشه پس از switch استفاده نکنین .

پاسخ
#8
Note 
mahbobe.prog نوشته است:سلام
فکر میکنم دلیل WARRNING واسه این باشه که اومدین از switch استفاده کردین ولی برای هر case عملیاتی تعریف نکردین- اگه میخاین برا همشون یک عملیات انجام بشه پس از switch استفاده نکنین .
فکر کنم در اشتباهید Confusedmilingsmiley:

HAPPY CODING
پاسخ
#9
Note 
ممنونم دوستان.درست شد
ولی بالاخره اشکالم به خاطر case های پشت سر هم بود؟؟یا اینکه شرط هام رو اشتباه تعریف کردم که به default نمیرسید؟

آخرین ویرایش: 30-05-2014 ساعت 01:06، توسط maynoush
پاسخ
#10
Note 
maynoush نوشته است:ممنونم دوستان.درست شد
ولی بالاخره اشکالم به خاطر case های پشت سر هم بود؟؟یا اینکه شرط هام رو اشتباه تعریف کردم که به default نمیرسید؟
case پشت سر هم هیچ اشکالی نداره کد switch هم درست بود اما بعد از کدی که BaNNer LorD گذاشت چون اول شرط موجود بودن gender بررسی میشد اگر وجود نداشت دیگه شرط علط میشد و به سویچ نمیرسید.
البته دوستان قبلا توضیح داده بودن.

پاسخ
ایجاد موضوع جدید   پاسخ به موضوع  

کاربرانِ درحال بازدید از این موضوع:   1 مهمان