كيف يمكنني استخدام زر إعادة الضبط لنموذج php؟

StackOverflow https://stackoverflow.com/questions/711324

  •  22-08-2019
  •  | 
  •  

سؤال

لدي نموذج أتعامل معه باستخدام PHP.قبل أن يرسله المستخدم، يعمل زر إعادة الضبط.ولكن عند الإرسال وإعادة تحميل الصفحة (لقد جعلت حقول النموذج ثابتة بناءً على قيم $_POST) لا تعمل إعادة التعيين.كيف يمكنني إصلاح ذلك؟يحرر:على سبيل المثال، مربع اختيار في النموذج:

 <input type="checkbox"  <?php if (isset($_POST['cb12'])){echo 'checked="checked"';} ?> name="cb12" tabindex="34" id=cb value="Education">

و HTML:

<tr>
          <td colspan="5" valign="top" class="addit" ><div class="sectionbreak topsp" >
              <input type="hidden" name="failure" value="failure.html" >
              <p>
                <input type="submit" name="Submit" value="Submit" tabindex="49">
                Sends your application by email to The Boggs</p>
              <p>
                <input type="reset" name="Reset" value="Reset" tabindex="50">
                Clears all the fields</p>
            </div></td>
        </tr>

يحرر:في النهاية، قمت فقط بإخفاء الزر إذا تم إرسال النموذج (لكنه لم يكتمل).ربما لن يلاحظ أحد.

هل كانت مفيدة؟

المحلول

لقد مررت للتو بهذا الشيء بالضبط، انظر السؤال السابق والإجابات المفيدة المذهلة.

في النهاية اضطررت إلى إجراء إعادة تعيين يدوي للقيم في PHP.

يحرر:ليس نفس السيناريو تمامًا بالنسبة لك حيث يبدو أنك تقوم بملء قيم النموذج بناءً على $_POST بدلاً من $_SESSION كما فعلت.وفي هذه الحالة راجع الإجابة التي قبلتها عبر الرابط أعلاه.

نصائح أخرى

وعلى زر إعادة الضبط يبطل تغييرات على النموذج، الذي أدلى به المستخدم، فإنه لا يمحو القيم الافتراضية. إذا كنت ترغب في مسح كافة القيم الافتراضية، يمكنك استخدام جافا سكريبت لتفعل شيئا مثل:

<script type="text/javascript">
   function resetForm(myFormId)
   {
       var myForm = document.getElementById(myFormId);

       for (var i = 0; i < myForm.elements.length; i++)
       {
           if ('submit' != myForm.elements[i].type && 'reset' != myForm.elements[i].type)
           {
               myForm.elements[i].checked = false;
               myForm.elements[i].value = '';
               myForm.elements[i].selectedIndex = 0;
           }
       }
   }
</script>

...

<form id="myFormId" ...>

<input name="reset" type="reset" onclick="resetForm('myFormId'); return false;" />

...

هل يمكن أن تتفاعل مع هذا الحدث إعادة تعيين مع unset($_POST).

وأجاب هذا بالفعل في وظيفة أخرى:

وأنا مجرد وسيطة في PHP، وقليلا كسول ليغوص في لغة جديدة مثل مسج، ولكن ليس هو الحل البسيط والأنيق التالية؟

<input name="Submit1" type="submit" value="Get free quote" />
<input name="submitreset" type="submit" value="Reset" />

لا يمكن أن نرى سببا لماذا لا يكون اثنين يقدم أزرار، فقط مع أغراض مختلفة. ثم ببساطة:

if ($_POST['submitreset']=="Reset") {
$_source = "--Choose language from--";
$_target = "--Choose language to--"; }

وكنت للتو إعادة تعريف القيم الخاصة بك مرة أخرى إلى ما يفترض أن يكون الافتراضي.

وعلى زر إعادة الضبط يبطل تغييرات على القيم شكل تحريرها، التي أجراها المستخدم، فإنه لا يمحو الافتراضي values.The زر إعادة الضبط التي تستخدم عادة في صفحات تحريرها أو تقديم صفحات

<input type="reset" value="Reset" name="reset" />
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top