在这个php邮件类中,如何取checkbox/radio类型的值? 本帖最后由 fozzainter 于 2011-08-23 13:45:44 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 刚经过了一次新的尝试<?php echo $_POST['sex'];$sex1=$_POST['sex'];echo $sex1;?>$sex1取到了值,但放到处理邮件的php页面中$body="$sex1"好像取到的是空值 $body="性别,$sex1"; 这个写法貌似不规范的,应该是能得到值得,这样写更好。$body="性别{$sex1}";问下楼主发邮件的时候是直接提交form表单并发邮件吗,如果form表单都没提交,又怎么会有$_POST["sex"]呢。 我其他的值都是这样去过来得,type=text 类型的都能直接取过来我是把这个php的表单提交到处理邮件的php文件中弄的,只是radio/checkbox这两个类型的值,不知道为什么取不到。我先去试下你的方法。 $sex1=$_POST['sex'];取到sex的值之后可以: 1.$body="性别:{$sex1}";像楼上写的那样。也可以 2.$body="性别:".$sex1;两种写法都可以,跟是不是在邮件中没有关系吧,邮件内容在发送之前都是要经过解释的。 试了一下还是不行,我尝试把所有的取值都按你的方式来写,但是还是$sex、$zixun1[]取不到,其他的用你这种规范的方式可以取到 大家再帮着看看吧 谢谢了 PS:问下,你们用邮件类取值时,都没用取过radio/checkbox中的值吗? 我在百度上搜,基本没有这样的问题发生过,前几页,还有几个是我的帖子 帖上部分代码 我在一个其他论坛问得时候,他说我从contact.php页面提交到contactus.php的时候,根本就没有提交数据可是我其他部分 type="text" 类型的值都能正常取到,比如说姓名之类的东西,但是这种radio/checkbox类型的不知道为什么取不到麻烦看下,谢谢html页面 让用户进行输入 <form action="contact.php" method="post" name="form1"> <tr> <td> 性别</td> <td><input type="radio" name="sex" value="男" checked/>男 <input type="radio" name="sex" value="女" />女</td> </tr> <input type="submit" name="sub"> </form> contact.php页面 获取用户输入的值,并进行确认,禁止更改 <form action="contactus.php" method="post" name="form2"> <tr> <td> 性别</td> <td> <?php echo $_POST['sex']; $sex1=$_POST['sex']; echo $sex1; //这步能够取到值 ?> </td> </tr> <input type="submit" value="发送" style="width:80px;height:43px" name="sub1" /> </form> contactus.php <?php //ok的邮箱发送。 include "smtp.class.php"; //$smtpserver = "SMTP.163.com"; //您的smtp服务器的地址 $smtpserver="smtp.163.com"; $port =25; //smtp服务器的端口,一般是 25 //$smtpuser = ""; //您登录smtp服务器的用户名 //$smtppwd = ""; //您登录smtp服务器的密码 $mailtype = "HTML"; //邮件的类型,可选值是 TXT 或 HTML ,TXT 表示是纯文本的邮件,HTML 表示是 html格式的邮件 //$sender = ""; //发件人,一般要与您登录smtp服务器的用户名($smtpuser)相同,否则可能会因为smtp服务器的设置导致发送失败 $smtp = new smtp($smtpserver,$port,false,$smtpuser,$smtppwd,$sender); //第三个值为false时,可匿名登录发送邮件,将$smtpuser、$smtppwd注释掉 //$smtp->debug = true; //是否开启调试,只在测试程序时使用,正式使用时请将此行注释 $to = ""; //收件人暂时匿掉了 //准备使用的邮箱 $subject = "咨询"; $body=" 名字:{$firstname}.{$familyname}<br> 名字拼音:{$firstnamepy}.{$familynamepy}<br> 咨询人性别:{$sex1}<br> 资讯种类:{$zixun1}<br> 资讯内容:{$zixun}<br> 电子邮件:{$email}"; //目前取不到性别(radio类型)、资讯种类的值(checkbox类型) $send=$smtp->sendmail($to,$sender,$subject,$body,$mailtype); ?> 邮件类是这个http://www.lantou.net/title.aspx?id=46 html到contact的时候,提交了数据。contact.php页面提交到contactus.php的时候,并没有提交到数据。你可以<input type="hidden" name="sex" value="<?=$sex1;?>"/>把你上个页面提交的数据提交到发送邮件的页面。或者通过<a href="contactus.php?sex=<?=$sex;?>">把你的数据通过get方式传给mail页面(contactus.php)同时在contactus中使用$sex=$_GET['sex'];取到值。ps:个人感觉你的contact.php是没有必要的,如果你不需要用户确认联系信息的话。可以直接把html的form 提交到contactus。php 非常感谢, 性别和咨询种类的取值都已经获得麻烦看下我的理解对不对,之前在contact.php里中,没有name=""东西,所以就没提交<input type="hidden" name="sex" />之后等于有了明确的提交 传得就是$sex里面的值刚开始学习,之前还没用过到过hidden用了之后。这个语句<a href="contactus.php?sex=<?=$sex;?>">起到的是什么作用,不用添加什么东西吗? 我现在在contact.php这个页面中没有用到这个语句,就可以正常传值了, 会不会有问题? contact.php页面 获取用户输入的值,并进行确认,禁止更改 <form action="contactus.php" method="post" name="form2"> <tr> <td> 性别</td> <td> <?php echo $_POST['sex']; $sex1=$_POST['sex']; echo $sex1; //这步能够取到值 ?> </td> </tr> <input type="submit" value="发送" style="width:80px;height:43px" name="sub1" /> </form> 会向 contactus.php 提交什么? 就是说,你可以通过form表单的post或者get方式传值(像前面的<form action="post">),也可以通过参数的get方式传值(例如contact.php?sex=<?=$sex;?>,这时候就不需要表单提交,而是通过参数形式传递值的)。 谢谢, 就是说不用表单提交的时候,就可以用<a href="">这个提交 这是是get形式的 对象元素名中含变量怎么办? 极度郁闷中,每次装环境,都会莫名其妙出来许多问题 mysql怎么会写到表单!! php中如何实现服务器端和客户端的同步更新? 急!请教:apache重定向中如果要把www1.test.com/test.php重定向到www.test.com/test.php?id=1???? 想问一下仓库管理系统的实现思想是什么 请教个问题,MD5 本人改的mysql数据库备份功能。 在浏览器中显示pdf文件的问题 手头的一套“自助建站系统”的问题。 php如何发送XML数据到java接口 正则的小问题
<?php
echo $_POST['sex'];
$sex1=$_POST['sex'];
echo $sex1;
?>
$sex1取到了值,但放到处理邮件的php页面中$body="$sex1"好像取到的是空值
我其他的值都是这样去过来得,type=text 类型的都能直接取过来我是把这个php的表单提交到处理邮件的php文件中弄的,只是radio/checkbox这两个类型的值,不知道为什么取不到。
我先去试下你的方法。
取到sex的值之后可以:
1.$body="性别:{$sex1}";
像楼上写的那样。
也可以
2.$body="性别:".$sex1;
两种写法都可以,跟是不是在邮件中没有关系吧,邮件内容在发送之前都是要经过解释的。
试了一下还是不行,我尝试把所有的取值都按你的方式来写,但是还是$sex、$zixun1[]取不到,其他的用你这种规范的方式可以取到
可是我其他部分 type="text" 类型的值都能正常取到,比如说姓名之类的东西,但是这种radio/checkbox类型的不知道为什么取不到
麻烦看下,谢谢
html页面 让用户进行输入
<form action="contact.php" method="post" name="form1">
<tr>
<td> 性别</td>
<td><input type="radio" name="sex" value="男" checked/>男
<input type="radio" name="sex" value="女" />女</td>
</tr>
<input type="submit" name="sub">
</form> contact.php页面 获取用户输入的值,并进行确认,禁止更改
<form action="contactus.php" method="post" name="form2">
<tr>
<td> 性别</td>
<td>
<?php
echo $_POST['sex'];
$sex1=$_POST['sex'];
echo $sex1; //这步能够取到值
?>
</td>
</tr>
<input type="submit" value="发送" style="width:80px;height:43px" name="sub1" />
</form> contactus.php
<?php
//ok的邮箱发送。
include "smtp.class.php";
//$smtpserver = "SMTP.163.com"; //您的smtp服务器的地址
$smtpserver="smtp.163.com";
$port =25; //smtp服务器的端口,一般是 25
//$smtpuser = ""; //您登录smtp服务器的用户名
//$smtppwd = ""; //您登录smtp服务器的密码
$mailtype = "HTML"; //邮件的类型,可选值是 TXT 或 HTML ,TXT 表示是纯文本的邮件,HTML 表示是 html格式的邮件
//$sender = ""; //发件人,一般要与您登录smtp服务器的用户名($smtpuser)相同,否则可能会因为smtp服务器的设置导致发送失败
$smtp = new smtp($smtpserver,$port,false,$smtpuser,$smtppwd,$sender); //第三个值为false时,可匿名登录发送邮件,将$smtpuser、$smtppwd注释掉
//$smtp->debug = true; //是否开启调试,只在测试程序时使用,正式使用时请将此行注释
$to = ""; //收件人暂时匿掉了
//准备使用的邮箱
$subject = "咨询";
$body=" 名字:{$firstname}.{$familyname}<br>
名字拼音:{$firstnamepy}.{$familynamepy}<br>
咨询人性别:{$sex1}<br>
资讯种类:{$zixun1}<br>
资讯内容:{$zixun}<br>
电子邮件:{$email}";
//目前取不到性别(radio类型)、资讯种类的值(checkbox类型)
$send=$smtp->sendmail($to,$sender,$subject,$body,$mailtype);
?> 邮件类是这个http://www.lantou.net/title.aspx?id=46
你可以<input type="hidden" name="sex" value="<?=$sex1;?>"/>
把你上个页面提交的数据提交到发送邮件的页面。或者
通过<a href="contactus.php?sex=<?=$sex;?>">
把你的数据通过get方式传给mail页面(contactus.php)同时在contactus中使用$sex=$_GET['sex'];
取到值。ps:个人感觉你的contact.php是没有必要的,如果你不需要用户确认联系信息的话。可以直接把html的form 提交到contactus。php
麻烦看下我的理解对不对,
之前在contact.php里中,没有name=""东西,所以就没提交
<input type="hidden" name="sex" />之后等于有了明确的提交 传得就是$sex里面的值刚开始学习,之前还没用过到过hidden
用了之后。这个语句<a href="contactus.php?sex=<?=$sex;?>">起到的是什么作用,不用添加什么东西吗? 我现在在contact.php这个页面中没有用到这个语句,就可以正常传值了, 会不会有问题?
<form action="contactus.php" method="post" name="form2">
<tr>
<td> 性别</td>
<td>
<?php
echo $_POST['sex'];
$sex1=$_POST['sex'];
echo $sex1; //这步能够取到值
?>
</td>
</tr>
<input type="submit" value="发送" style="width:80px;height:43px" name="sub1" />
</form> 会向 contactus.php 提交什么?
就是说,你可以通过form表单的post或者get方式传值(像前面的<form action="post">),也可以通过参数的get方式传值(例如contact.php?sex=<?=$sex;?>,这时候就不需要表单提交,而是通过参数形式传递值的)。
谢谢, 就是说不用表单提交的时候,就可以用<a href="">这个提交 这是是get形式的