نمایش نتایج 1 تا 6 از 6

نام تاپیک: تشخیص دستکاری شدن چک باکس در پاس صفحه

  1. #1

    Question تشخیص دستکاری شدن چک باکس در پاس صفحه

    سلام،

    میخواستم بدونم چطوری بفهمم کاربر مقدار چکباکسی در فرم رو تغییر داده؟(ممکنه صفحه چندبار رفرش بشه میخوام اگر هم در یک رفرش اگر چک باکسی مقدارش تغییر کرده من دیگه کلا بدونم که تغییر دستکاری شده.)
    با دستور:
     if( (isset($_POST['level2']))

    فقط وقتی trueمیشه که کاربر تیک زده باشش ولی من میخوام بفهمم ایا اصلا کاربرتغییری در وضعیته چک باکس داده است؟

    واضحتر بگم:
    یک فرم ویرایش دارم که از بانک مقدار فیلدهامو میخونم و چک باکس هایی که در رکورد مربوطه تیک خورده رو تیک دار نشون میدم.
    حالا من میخوام وقتی کاربر مقدار چک باکسی رو تغییر داد دیگه با رفرش صفحه اون تغییرات کاربرنشون داده بشه.

    برای وضوح بیشتر منظورم کدتکست باکسم اینگونه س:
    <input type="text" name="txtmobile" maxlength="150" size="20"
    value="<?php echo (isset($_POST['txtmobile']) ? $_POST['txtmobile'] : $oldmobile); ?>" />

    حالا برای چک باکس نمیدونم چکار کنم، اینجوری نوشتم :
    <input type="checkbox" name="level2" value="2" <?php
    if( (isset($_POST['level2'])) || ((!isset($_POST['level2'])) && ($oldlevel2)) )

    {?> checked <?php } ?>/>

    ولی درست کار نمیکنه.
    اینجور یکه نوشتم دفعه اول بعله همه رو درست از بانک نشون میده ولی وقتی صفحه رفرش بشه اون چک باکس هایی که کاربر الان تیک زدشون و اون چک باکس هایی که از قبل توی بانک تیک خورده هست رو تیک دار نشون میده! که اشتباه س و مدنظر من اینه فقط اون چکباکس هایی که هم اکنون تیک خوردند رو نشون بده.


    //امیدوارم منظورم رو خوب رسونده باشم.

  2. #2

    نقل قول: تشخیص دستکاری شدن چک باکس در پاس صفحه

    میشه یکم وااضح تر بگید
    منظورتون این شکلیه؟

    <?php
    static $y;
    if(isset($_POST['submit'])){
    if(isset($_POST['tik']))
    $y="checked";
    else
    $y=null;
    }
    ?>
    <form method="post">
    <input type="checkbox" name="tik" value="y" <?php echo $y?>>Yes<br>
    <input type="submit" name="submit" value="send">
    </form>

    آخرین ویرایش به وسیله funpatogh : چهارشنبه 28 مهر 1389 در 01:46 صبح

  3. #3

    نقل قول: تشخیص دستکاری شدن چک باکس در پاس صفحه

    ممنونم واقعاً ،مشکلم حل شد،

    راستی من الان کدم درست شده و اجراشو اینا راحته، فقط من 12 تا کنترل چکباکس دارم گاهی که تغییرشون میدم، و میزنم روی دکمه ی ویرایش یکهویی خیلی طول میکشه گاهی تا پردازش انجام بشه گاهی می مبینم طول کشید دوباره روی همون دکمه ویرایش کلیک میکنم ممکنه سریع انجام بشه یا اگر یکی از چک باکس ها رو تغییر بدم و روی دکمه ویرایشم دوباره کلیک بزنم خیلی سریع انجام میشه (به نظرتون دلیلش چی میتونه باشه؟)
    من مشکلی توی کدها نمی بینم.
    و اینکه گاهی این مشکل بوجود مییاد! ممکنه از مثلاً xxamp باشه؟(اینم احتمالش خیلی کمه!)
    من روی لوکال دارم تست میکنم!

  4. #4
    کاربر دائمی آواتار binyaft
    تاریخ عضویت
    خرداد 1388
    محل زندگی
    سیم مسی
    پست
    1,761

    نقل قول: تشخیص دستکاری شدن چک باکس در پاس صفحه

    شاید سرعت پایین از به کاربردن if های زیاد است ( که فکر نکنم با این تعداد تاثیری داشته باشه )
    از دستور switch استفاده کنید سریعتر است

  5. #5

    نقل قول: تشخیص دستکاری شدن چک باکس در پاس صفحه

     $level[]="";
    $anytik="0";
    for($i=1;$i<=12;$i++)
    {
    if(isset($_POST['level'.$i]))
    {
    $anytik="1";
    $level[$i]=1;
    //break;
    }
    else
    $level[$i]=0;
    }

    کدم اینطوریه .
    راستی static $y;
    استاتیک چه معنی ایی داره؟

  6. #6

    نقل قول: تشخیص دستکاری شدن چک باکس در پاس صفحه

    بنده چون نمیخواستم از دیتابیس استفاده کنم و برای راحتی کار فقط بدونم منظور شما چی بوده از static استفاده کردم
    وقتی متغییری استاتیک تعریف میشه مقدار رو توی خودش نگه میداره و به این معنی نیست که هر بار صفحه رفرش بشه باز هم مقدار توش میمونه
    این مثال رو آنالیز کن تا دقیق متوجه بشوید

    <?php
    function test(){
    static $y;
    echo ++$y;
    }
    for($i=1;$i<=5; print test()."<br>",$i++);
    ?>

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •