【问题标题】:Get status from checkbox with PHP and Bootstrap CSS使用 PHP 和 Bootstrap CSS 从复选框获取状态
【发布时间】:2015-06-29 21:27:51
【问题描述】:

我正在尝试使用 PHP 和引导 CSS 创建联系表单。现在我得到了大部分工作,但是我需要从多个复选框中获取状态,并仅在邮件中从复选框中发布“标签”。我知道这并不像我说的那么简单,我已经看到一些使用 javascript 或 Ajax 等的在线页面。但我无法让它工作,目前这是我的页面:

--更新--

再次感谢您的回答,但仍然收到 500 错误页面: http://prntscr.com/6u21xy

<?php
if(isset($_POST['submit'])) 
{

$message=
'Full Name:	'.$_POST['fullname'].'<br />
Subject:	'.$_POST['subject'].'<br />
Phone:	'.$_POST['phone'].'<br />

foreach($_POST['check_list'] as $check) {
$message .= .$check . '<br>';       
}


Email:	'.$_POST['emailid'].'<br />
Comments:	'.$_POST['comments'].'
';
    require "PHPMailer-master/class.phpmailer.php"; //include phpmailer class
      
    // Instantiate Class  
    $mail = new PHPMailer();  
      
    // Set up SMTP  
    $mail->IsSMTP();                // Sets up a SMTP connection  
    $mail->SMTPAuth = true;         // Connection with the SMTP does require authorization    
    $mail->SMTPSecure = "ssl";      // Connect using a TLS connection  
    $mail->Host = "smtp.gmail.com";  //Gmail SMTP server address
    $mail->Port = 465;  //Gmail SMTP port
    $mail->Encoding = '7bit';
    
    // Authentication  
    $mail->Username   = "example@gmail.com"; // Your full Gmail address
    $mail->Password   = "examplepassword"; // Your Gmail password
      
    // Compose
    $mail->SetFrom($_POST['emailid'], $_POST['fullname']);
    $mail->AddReplyTo($_POST['emailid'], $_POST['fullname']);
    $mail->Subject = "New Contact Form Enquiry";      // Subject (which isn't required)  
    $mail->MsgHTML($message);
 
    // Send To  
    $mail->AddAddress("examplereceiver@gmail.com", "Mr. Example"); // Where to send it - Recipient
    $result = $mail->Send();		// Send!  
	$message = $result ? '<div class="alert alert-success" role="alert"><strong>Success!</strong>Message Sent Successfully!</div>' : '<div class="alert alert-danger" role="alert"><strong>Error!</strong>There was a problem delivering the message.</div>';  

	unset($mail);

}
?>
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>Contact Form</title>

    <!-- Bootstrap -->
    <link href="css/bootstrap.min.css" rel="stylesheet">
    <link rel="stylesheet" href="css/style.css">

    <!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
    <!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
    <!--[if lt IE 9]>
      <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
      <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
    <![endif]-->
  </head>
  <body>
  	<div class="contactform">
  	<div class="panel panel-default">
  		<div class="panel-heading">
    	<h3 class="panel-title"><a href="">Contact Form</a></h3>
    	</div>
    	<div class="panel-body">
    	<form name="form1" id="form1" action="" method="post">
    			<fieldset>
    			  <input type="text" class="form-control" name="fullname" placeholder="Volledige Naam" />
    			  <br />
    			  <input type="text" class="form-control" name="subject" placeholder="Onderwerp" />
    			  <br />
    			  <input type="text" class="form-control" name="phone" placeholder="Telefoonnummer" />
    			  <br />
    			  <input type="email" class="form-control" name="emailid" placeholder="Email" />
			  <br />
			     <div class="checkbox">
      				<label>
      				<input type="checkbox" name="check_list[]" value="value1">Check me
      				</label>
      				<label>
      				<input type="checkbox" name="check_list[]" value="value2">Check me 2
      				</label>
   			     </div>
    			  <br />
    			  <textarea rows="4" class="form-control" cols="20" name="comments" placeholder="Extra tekst indien gewenst"></textarea>
    			  <br />
    			  <input type="submit" class="btn btn-success"name="submit" value="Verstuur" />
    			</fieldset>
    	</form>
    	<p><?php if(!empty($message)) echo $message; ?></p>
    	</div>
	</div>
	</div>
    <!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
    <!-- Include all compiled plugins (below), or include individual files as needed -->
    <script src="js/bootstrap.min.js"></script>
  </body>
</html>

【问题讨论】:

    标签: javascript php css twitter-bootstrap


    【解决方案1】:

    <?php
    if(isset($_POST['submit'])) 
    {
    
    $message=
    'Full Name:	'.$_POST['fullname'].'<br />
    Subject:	'.$_POST['subject'].'<br />
    Phone:	'.$_POST['phone'].'<br />';
    foreach($_POST['check_list'] as $check) {
    $message .= .$check . '<br>';       
    }
    
    
    
    Email:	'.$_POST['emailid'].'<br />
    Comments:	'.$_POST['comments'].'
    ';
        require "PHPMailer-master/class.phpmailer.php"; //include phpmailer class
          
        // Instantiate Class  
        $mail = new PHPMailer();  
          
        // Set up SMTP  
        $mail->IsSMTP();                // Sets up a SMTP connection  
        $mail->SMTPAuth = true;         // Connection with the SMTP does require authorization    
        $mail->SMTPSecure = "ssl";      // Connect using a TLS connection  
        $mail->Host = "mail.bjornvdakker.me";  //Gmail SMTP server address
        $mail->Port = 465;  //Gmail SMTP port
        $mail->Encoding = '7bit';
        
        // Authentication  
        $mail->Username   = "support@bjornvdakker.me"; // Your full Gmail address
        $mail->Password   = "5#UPJucxaB7"; // Your Gmail password
          
        // Compose
        $mail->SetFrom($_POST['emailid'], $_POST['fullname']);
        $mail->AddReplyTo($_POST['emailid'], $_POST['fullname']);
        $mail->Subject = "New Contact Form Enquiry";      // Subject (which isn't required)  
        $mail->MsgHTML($message);
     
        // Send To  
        $mail->AddAddress("bjornvdakker@hotmail.com", "Mr. Example"); // Where to send it - Recipient
        $result = $mail->Send();		// Send!  
    	$message = $result ? '<div class="alert alert-success" role="alert"><strong>Success!</strong>Message Sent Successfully!</div>' : '<div class="alert alert-danger" role="alert"><strong>Error!</strong>There was a problem delivering the message.</div>';  
    
    	unset($mail);
    
    }
    ?>
    <!DOCTYPE html>
    <html lang="en">
      <head>
        <meta charset="utf-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <title>Contact Form</title>
    
        <!-- Bootstrap -->
        <link href="css/bootstrap.min.css" rel="stylesheet">
        <link rel="stylesheet" href="css/style.css">
    
        <!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
        <!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
        <!--[if lt IE 9]>
          <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
          <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
        <![endif]-->
      </head>
      <body>
      	<div class="contactform">
      	<div class="panel panel-default">
      		<div class="panel-heading">
        	<h3 class="panel-title"><a href="">Contact Form</a></h3>
        	</div>
        	<div class="panel-body">
        	<form name="form1" id="form1" action="" method="post">
        			<fieldset>
        			  <input type="text" class="form-control" name="fullname" placeholder="Volledige Naam" />
        			  <br />
        			  <input type="text" class="form-control" name="subject" placeholder="Onderwerp" />
        			  <br />
        			  <input type="text" class="form-control" name="phone" placeholder="Telefoonnummer" />
        			  <br />
        			  <input type="email" class="form-control" name="emailid" placeholder="Email" />
    			  <br />
    			     <div class="checkbox">
          				<label>
          				<input type="checkbox" name="check_list[]" value="value1">Check me
          				</label>
          				<label>
          				<input type="checkbox" name="check_list[]" value="value2">Check me 2
          				</label>
       			     </div>
        			  <br />
        			  <textarea rows="4" class="form-control" cols="20" name="comments" placeholder="Extra tekst indien gewenst"></textarea>
        			  <br />
        			  <input type="submit" class="btn btn-success"name="submit" value="Verstuur" />
        			</fieldset>
        	</form>
        	<p><?php if(!empty($message)) echo $message; ?></p>
        	</div>
    	</div>
    	</div>
        <!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
        <!-- Include all compiled plugins (below), or include individual files as needed -->
        <script src="js/bootstrap.min.js"></script>
      </body>
    </html>

    将此添加到您的复选框:

    <input type="checkbox" name="check_list[]" value="value1">
    

    【讨论】:

    • 感谢您的回复。我编辑了代码并将上面的新代码放在帖子中,得到了 500 错误。我只想在邮件中发布复选框的值。这种策略是否也可以将值排序在彼此下方?所以他们不会被放在一起。
    • 答案已更新,代码中的 foreach 放置不正确
    • 嘿 keaner,我编辑了代码,但仍然没有成功。我猜这与 php 代码的“布局”有关,但找不到错误。有想法吗?上面贴出代码
    • 仍然收到 500 错误?该代码对我来说很好。
    • 您的代码中有一个小的语法错误。现在已经修复了,非常感谢您的支持
    猜你喜欢
    • 2011-09-06
    • 2015-06-21
    • 2017-09-09
    • 1970-01-01
    • 2016-12-13
    • 2012-12-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多