سوال در مورد ارسال اطلاعات فرم

dishlame

Member
سلام
یک فرم دارم که این ها رو داره :
chekbox
radio
textbox
بعد اینا رو اطلاعاتش رو پر می کنم و ارسال می کنم :
PHP:
action="registerhandle.php" metod="get" >

حالا می خوام اطلاعات رو که نوشتم و انتخاب کردم توی صفحه registerhandle نشون داده بشه

توی نشون دادن radio و textbox مشکلی نیست
3 تا chekbox دارم ، اگه همه رو انتخاب کنم مشکلی پیش نمیاد
ولی اگه یکیش انتخاب نشه Error می ده

ممنون دوستان عزیز
 

Masoud1365

مدیر انجمن
چه اروری میده ؟
چک باکس ها هم مثل بقیه هستند هرکدوم که تیک بخورن مقدارشون ارسال میشه و اگه تیک نخورن ارسال نمیشه !
 

dishlame

Member
این Error : Notice: Undefined offset: 2 in C:\xampp\htdocs\registerhandle.php on line 31

اگه همه رو با هم انتخاب نکنیم این اتفاق می افته !
 

Masoud1365

مدیر انجمن
کدتون رو بزارید اینجا !
احتمالا شما برای دریافت اطلاعات از $_GET/POST/REQUEST استفاده نمیکنید و متغیر رو با نامی که در فرم داره فراخوانی میکنید ! که اگر رجیسترگلوبال فعال نباشه هم مشکل پیدا میکنید ! وقتی هم که فعال باشه اگر که انتخاب نشه ( یعنی مقدار نداشته باشه ) متغیر شناسایی نمیشه و ارور میده ولی به هر حال کدتون رو برای بررسی اینجا بزارید !
موفق :rose:
 

dishlame

Member
فایل Register
PHP:
<!doctype html>
<html>
<head>
        
        <style>
            
            #w{
                width:300px;
                height:310px;
                background:#bde113;
                border:2px solid red;
                font-family:Comic Sans MS;
                font-size:13px;
            }
        
        
        </style>
</head>

<body>
        <div id="w">
        
        <form action="registerhandle.php" metod="get" >
        <span>Name<input type="text" name="textbox[]"/></span><br />
        <span>Family:</p><input type="text" name="textbox[]" /></span><br />
        <span>Password:</p><input type="password" name="pass" /></span><br />
        
         Sen &nbsp;&nbsp; <select name="sen[]">
                <option value="+10">+10 </option>
                <option value="+15">+15 </option>
                <option value="+20">+20 </option>
                <option value="+25">+25 </option>
                <option value="+30">+30 </option>
                <option value="+40">+40 </option>
        </select>
        
        
        <br />
        <br />
        
        <div>Color</div>
        <input type="checkbox" name="color[]" value="red">red</input>
        <br />
        <input type="checkbox" name="color[]" value="blue" >blue</input>
        <br />
        <input type="checkbox" name="color[]" value="green" >green</input>
        <br />
        <br />
        
        <input type="radio" name="s" value="m">Male</input>
        <input type="radio" name="s" value="f">Famle</input>
        <br />
        <br />
        
        
        <input type="submit" value="Register"></input>
        <br />
        <br />
        
        <input type="reset"></input>
        </form>
        </div>
</body>


</html>

فایل Registerhandle

PHP:
<!doctype html>
<html>
<head>
        <style>
                
        
        </style>
</head>
<body>
    <div id="style">
<?php
        
        for($i=0;$i<2;$i=$i+1){
        
            echo $_GET['textbox'][$i];
            echo "&nbsp;";
    
        }
        
        
        
        
                echo $_GET['color'][0];
                
            
            
                echo $_GET['color'][1];
                
        
            
                echo $_GET['color'][2];
                
            
            
        
        
        
        
        echo $_GET['sen'][0];
        if($_GET['s']=='f'){
            echo "Female";
        }
        elseif($_GET['s']=='m'){
            echo "male";
        }
        
        
    
        
    
?>
</div>


</body>

</html>
 

MMSHFE

Active Member
با سلام، نميدونم چرا اينقدر از آرايه استفاده كردين. برخي جاها واقعاً نيازي نيست. مثل textboxها و تگ select چون تا جايي كه ميبينم، multiselect هم نگذاشتين. درهرحال، اون قسمت
PHP:
echo $_GET['color'][0];
echo $_GET['color'][1];
echo $_GET['color'][2];
رو با اين كد جايگزين كنيد:
PHP:
if(isset($_GET['color'][0]) { echo $_GET['color'][0]; }
if(isset($_GET['color'][1]) { echo $_GET['color'][1]; }
if(isset($_GET['color'][2]) { echo $_GET['color'][2]; }
ميتونيد از اين كد هم استفاده كنيد:
PHP:
foreach($_GET['color'] as $color)
{
    echo $color;
}
توضيح: مشكل از اينجا هست كه وقتي يك گزينه از checkboxها انتخاب نميشه، اين طرف چيزي ارسال نميشه كه شما بخواين با echo اون رو نمايش بدين!
موفق باشيد.
 
بالا