Php 如何处理告诉朋友的数据?
我正在编写一个基本上具有告诉朋友功能的脚本,但我正在尝试找出捕获和处理数据的最佳方法 例如:Php 如何处理告诉朋友的数据?,php,javascript,forms,Php,Javascript,Forms,我正在编写一个基本上具有告诉朋友功能的脚本,但我正在尝试找出捕获和处理数据的最佳方法 例如: 我是否显示5对字段,要求输入姓名和电子邮件,每对为$friend\u name1/$friend\u email1、$friend\u name2/$friend\u email2等,允许您一次向5位朋友发送电子邮件 我是否显示一对,并使用JavaScript允许用户使用变量命名约定(如#1)不断添加更多好友 我是否按照#1或#2中的建议显示它们,然后提交一个数组,例如$friend_email[]/$
Ryan这些是UI问题,答案是您认为最适合您网站的UI。您可能有一个固定数量的字段更适合的设计,或者您可能有一个“添加另一个字段”按钮过于混乱的人口统计。无论哪种方式,处理表单的代码都不必与呈现UI的方式相关 如果将字段命名为数组,请确保字段保持关联,请自己指定索引,而不是使用开括号,这样就不会有这个问题
<input type="text" name="name[0]" value="First Friend's Name" />
<input type="text" name="email[0]" value="First Friend's E-mail" />
<input type="text" name="name[1]" value="Second Friend's Name" />
<input type="text" name="email[1]" value="Second Friend's E-mail" />
在循环中,
$name
和$email
将来自表单中的同一组字段,尽管它们仍然可以为空。我建议使用数组。您可以使用javascript或其他方式,但请确保处理端可以看到有多少引用。要确保正确的电子邮件和名称保持在一起,请尝试以下操作
<input type="text" name="friend_name[0]" />
<input type="text" name="friend_email[0]" />
<input type="text" name="friend_name[1]" />
<input type="text" name="friend_email[1]" />
循环遍历这些(如果您实现的javascript可能有“无限”数量的引用)的想法是使用count();功能。实现将如下所示:
for($i=0;$i<count($_POST['friend_name']);++$i)
{
if($_POST['friend_email'][$i] == NULL) continue; // Ignore NULL e-mails
// Process data blah
}
希望这有帮助!祝你好运
丹尼斯M.作为更新:最终我没有选择答案。它确实完美地解决了这个问题,但我也希望以后能够克隆姓名和电子邮件字段,以便用户可以选择通过单击链接添加更多朋友。通过使用我最初问题中的方法#3,这使得克隆非常容易。您可以在此处阅读以下内容:
Array
(
[friend_name] => Array
(
[0] => test_name
[1] => test_name2
)
[friend_email] => Array
(
[0] => email@something.com
[1] => email@two.com
)
)
for($i=0;$i<count($_POST['friend_name']);++$i)
{
if($_POST['friend_email'][$i] == NULL) continue; // Ignore NULL e-mails
// Process data blah
}
foreach($_POST['friend_name'] as $key => $val)
{
if($_POST['friend_email'][$key] == NULL) continue; // Ignore NULL e-mails
// Process $val and $_POST['friend_email'][$key]
}