dinamik formu teslim olmadan php populate liste

1 Cevap php

Elimden geldiğince bu açıklamaya çalışacağım.

Birden alanları kabul eden bir form var ve belirli bir e-posta adresine sonu, e-postalar, tüm alanlarda.

Yani, örneğin, ben üç metin kutusu, bir liste kutusu ve iki göndermek düğmeleri var.

Metin kutularının ilk iki ismi vardır, ve e-posta adresiniz

Üçüncü metin kutusu liste kutusunu doldurmak için kullanılır. Yani üçüncü metin kutusuna, NIKE, girin ve itme ise ilk düğmeyi gönderin. Nike şimdi liste olacaktır.

Ben gerektiği kadar girdileri ile liste kutusunu doldurmak için güçlü olmak istiyorum, daha sonra ikinci tüm bilgileri (ad, e-posta adresinizi ve liste kutusunda tüm öğeleri) göndermek için Gönder düğmesini itin.

Sorun ing "POST" olduğumdan beri ilk teslim düğmesi her zaman, gönderilen e-postayı tetikler iterek olduğunu.

Ben her şeyi şu anda çalışma var. Üçüncü metin kutusu mysql bir tabloya yeni veri gönderir ve daha sonra tüm verileri alır ve liste kutusuna koyar.

Bu senaryoyu düzeltmek için en iyi yolu nedir? İkinci düğmesi kullanılır sunmak kadar, doğrulamasını Mesaj değişkeni durdurabilir?

Ayrıca, JavaScript, sayesinde önlemek istiyorum

1 Cevap

Emin olun iki düğme adları gönderin. I.E: <input type="submit" name="command" value="Add"> ve <input type="submit" name="command" value="Send">. Sonra tıklandığında hangi belirlemek için PHP kullanabilirsiniz:

if($_REQUEST['command'] == 'Add')
{
  // Code to add the item to the list box here
}
elseif($_REQUEST['command'] == 'Send')
{
  // Code to send the email here...
}

BONUS: kolaylıkla değiştirilebilir böylece ekstra kredi için, komutları değişkenleri yapmak, ve işlevlerine onları Haritayı ...

<?php

$commands = array(
  'doSendEmail' => 'Send Email',
  'doAddOption' => 'Add Option',
);

function doSendEmail()
{
  // your email sending code here...
}

function doAddOption()
{
  // your option adding code here...
}

function printForm()
{
  global $commands;
  ?>
  Name: <input type="text" name="name"><br>
  Email: <input type="text" name="name"><br>
  <input type="text" name="add">
  <input type="submit" name="command" value="<?= $commands['doAddOption'] ?>">
  <select>
  <?php /* some code here */ ?>
  </select>
  <input type="submit" name="command" value="<?= $commands['doSendEmail'] ?>">
  <?php
}

if(isset($_REQUEST['command']))
{
  $function = array_search($_REQUEST['command'],$commands);
  if($function !== -1)
    call_user_func($function);
}