php在不提交表单的情况下动态填充列表框

php在不提交表单的情况下动态填充列表框,php,mysql,xhtml,Php,Mysql,Xhtml,我会尽力解释清楚的 我有一个表单,它接受多个字段,最后通过电子邮件将所有字段发送到特定的电子邮件地址 例如,我有三个文本框,一个列表框和两个提交按钮 其中两个文本框是名字和电子邮件地址 第三个文本框用于填充列表框。因此,如果我在第三个文本框中输入NIKE并按下第一个提交按钮。Nike现在将位于列表框中 我希望能够根据需要使用尽可能多的条目填充列表框,然后按第二个提交按钮发送所有信息(名字、电子邮件地址和列表框中的所有项目) 问题是,按下第一个提交按钮总是会触发发送的电子邮件,因为我正在“发布”邮

我会尽力解释清楚的

我有一个表单,它接受多个字段,最后通过电子邮件将所有字段发送到特定的电子邮件地址

例如,我有三个文本框,一个列表框和两个提交按钮

其中两个文本框是名字和电子邮件地址

第三个文本框用于填充列表框。因此,如果我在第三个文本框中输入NIKE并按下第一个提交按钮。Nike现在将位于列表框中

我希望能够根据需要使用尽可能多的条目填充列表框,然后按第二个提交按钮发送所有信息(名字、电子邮件地址和列表框中的所有项目)

问题是,按下第一个提交按钮总是会触发发送的电子邮件,因为我正在“发布”邮件

我现在一切正常。第三个文本框将新数据提交到mysql中的一个表中,然后检索所有数据并将其放入列表框中

解决此问题的最佳方法是什么?在使用第二个提交按钮之前,是否可以停止Post变量的验证


另外,我想避免使用Javascript,谢谢

确保两个提交按钮都有名称。例如:
。然后,您可以使用PHP确定单击了哪一个:

if($_REQUEST['command'] == 'Add')
{
  // Code to add the item to the list box here
}
elseif($_REQUEST['command'] == 'Send')
{
  // Code to send the email here...
}
额外奖励:要获得额外奖励,请将命令设置为变量,以便轻松更改,并将其映射到函数

<?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);
}

名称:
电子邮件:

当然,所有这些代码都没有经过测试。。。但基本原则是正确的。工作完美!谢谢你知道我能读到的一篇文章(网站)解释了你的“生成命令变量,映射到函数”吗?请参阅我发布的“奖金”部分。也就是说,命令存储在PHP变量中,并且它们映射到函数。(好吧,反过来说,但你明白了)