【发布时间】:2015-04-19 00:55:30
【问题描述】:
我有这个下拉菜单(10 个选择),在选择后,将根据选择通过电子邮件发送。
这是我的完整脚本:
<?
/*//Disable error reporting
error_reporting(0);
*/
//Report runtime errors
//error_reporting(E_ERROR | E_WARNING | E_PARSE);
//Report all errors
//error_reporting(E_ALL);
//end of error reporting
// Start the session
session_start();
?>
<html>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<head>
<script src="//ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$('select').on('change', function(e){
var selected_value = $(this).val();
var option_data = $(this).children('option[value="'+selected_value+'"]');
// get data values
var visanumber = option_data.data('visanumber');
var idnumber = option_data.data('idnumber');
var statusapp = option_data.data('statusapp');
var subdate = option_data.data('subdate');
// the photo
var accntVisaPhotoPath = option_data.data('accntvisaphotopath');
$(this).closest('td').siblings().find('img.accntVisaPhotoPath').attr('src', accntVisaPhotoPath);
var passportPath = option_data.data('passportpath');
$(this).closest('td').siblings().find('img.passportPath').attr('src', passportPath);
// set the values
$(this).closest('td').siblings().find('span.visanumber').text(visanumber);
$(this).closest('td').siblings().find('span.idnumber').text(idnumber);
$(this).closest('td').siblings().find('span.statusapp').text(statusapp);
$(this).closest('td').siblings().find('span.subdate').text(subdate);
});
});
</script>
</head>
<body>
<?
$con=mysqli_connect("localhost","xxx","xxx","xxx");
// Check connection
if (mysqli_connect_errno()) {
echo "Failed to connect to MySQL:" . mysqli_connect_error();
}
$result = mysqli_query($con, "SELECT * FROM CV ORDER BY idvisa");
?>
<div align="center">
<form name="listUsers" method="POST" action="contractEmail.php" enctype="multipart/form-data" accept-charset="UTF-8">
<table border="1px" width="700">
<tr>
<td align="center" colspan="7"><b>Email:</b><input name="email" type="text" id="email"></td>
</tr>
<tr>
<th> <div align="center"> Applicant Name </div></th>
<th> <div align="center">Visa Number</div></th>
<th> <div align="center">ID Number </div></th>
<th> <div align="center">Employment Status</div></th>
<th> <div align="center"> Visa </div></th>
<th> <div align="center"> Passport </div></th>
<th> <div align="center"><font color="red">Date</div></th>
</tr>
<tr>
<td>
<select name="users[]">
<? echo "<option value=\"\">Select Person:</option>";?><br>
<? while ($row=mysqli_fetch_array($result)) {
echo "<option value='".$row['idvisa']."' data-visanumber='".$row['visanumber']."' data-idnumber='".$row['idnumber']."' data-statusapp='".$row['statusapp']."' data-accntVisaPhotoPath='".$row['accntVisaPhotoPath']."' data-passportPath='".$row['passportPath']."' data-subdate='".$row['subdate']."'>".$row['fName']." ".$row['lName']."</option>";
}
//First var
?>
</select>
<?//Additional var
$remittance =$row["remittance"];
$idvisa =$row["idvisa"];
$empname =$row["empname"];
$emailTrans =$row["emailTrans"];
$contractStat =$row["contractStat"];
$dateFiled =$row["dateFiled"];
$visanumber =$row["visanumber"];
$idnumber =$row["idnumber"];
$referredBy =$row["referredBy"];
$statusapp =$row["statusapp"];
$appname =$row["appname"];
$visa_path =$row["visa_path"];
$ticket_path =$row["ticket_path"];
$phoNamePath =$row["phoNamePath"];
$position =$row["position"];
$emailApp =$row["emailApp"];
$lName =$row["lName"];
$fName =$row["fName"];
$mName =$row["mName"];
$pAdd =$row["pAdd"];
$perAdd =$row["perAdd"];
$age =$row["age"];
$bDate =$row["bDate"];
$pBirth =$row["pBirth"];
$sex =$row["sex"];
$languageSpoken =$row["languageSpoken"];
$height =$row["height"];
$weight =$row["weight"];
$bCivilStatus =$row["bCivilStatus"];
$bReligion =$row["bReligion"];
$spouse =$row["spouse"];
$emergency =$row["emergency"];
$telemerCP =$row["telemerCP"];
$hs =$row["hs"];
$hsComplete =$row["hsComplete"];
$hsGrad =$row["hsGrad"];
$hsDegree =$row["hsDegree"];
$coll =$row["coll"];
$collComplete =$row["collComplete"];
$collGrad =$row["collGrad"];
$collDegree =$row["collDegree"];
$voc =$row["voc"];
$vocComplete =$row["vocComplete"];
$vocGrad =$row["vocGrad"];
$vocDegree =$row["vocDegree"];
$hc =$row["hc"];
$hcComplete =$row["hcComplete"];
$hcGrad =$row["hcGrad"];
$hcDegree =$row["hcDegree"];
$local1_post =$row["local1_post"];
$local1_fr =$row["local1_fr"];
$local1_to =$row["local1_to"];
$local1_name =$row["local1_name"];
$local1_add =$row["local1_add"];
$local2_post =$row["local2_post"];
$local2_fr =$row["local2_fr"];
$local2_to =$row["local2_to"];
$local2_name =$row["local2_name"];
$local2_add =$row["local2_add"];
$local3_post =$row["local3_post"];
$local3_fr =$row["local3_fr"];
$local3_to =$row["local3_to"];
$local3_name =$row["local3_name"];
$local3_add =$row["local3_add"];
$local4_post =$row["local4_post"];
$local4_fr =$row["local4_fr"];
$local4_to =$row["local4_to"];
$local4_name =$row["local4_name"];
$local4_add =$row["local4_add"];
$local5_post =$row["local5_post"];
$local5_fr =$row["local5_fr"];
$local5_to =$row["local5_to"];
$local5_name =$row["local5_name"];
$local5_add =$row["local5_add"];
?>
</td>
<td align="center"><span class="visanumber"></span></td>
<td align="center"><span class="idnumber"></span></td>
<td align="center"><span class="statusapp"></span></td>
<td align="center"><img class="accntVisaPhotoPath" height="50" width="50"></img></td>
<td align="center"><img class="passportPath" height="50" width="50"></img></td>
<td align="center"><span class="subdate"></span></td>
</span>
</tr>
<tr>
<td>
<select name="users[]">
<?
mysqli_data_seek( $result, 0 );
echo "<option value=\"\">Select Person:</option>";
while ($row=mysqli_fetch_array($result)) {
echo "<option value='".$row['idvisa']."' data-visanumber='".$row['visanumber']."' data-idnumber='".$row['idnumber']."' data-statusapp='".$row['statusapp']."' data-accntVisaPhotoPath='".$row['accntVisaPhotoPath']."' data-passportPath='".$row['passportPath']."' data-subdate='".$row['subdate']."'>".$row['fName']." ".$row['lName']." </option>";
}
?>
</td>
<td align="center"><span class="visanumber"></span></td>
<td align="center"><span class="idnumber"></span></td>
<td align="center"><span class="statusapp"></span></td>
<td align="center"><img class="accntVisaPhotoPath" height="50" width="50"></img></td>
<td align="center"><img class="passportPath" height="50" width="50"></img></td>
<td align="center"><span class="subdate"></span></td>
</span>
</tr>
<tr>
<td>
<select name="users[]">
<?
mysqli_data_seek( $result, 0 );
echo "<option value=\"\">Select Person:</option>";
while ($row=mysqli_fetch_array($result)) {
echo "<option value='".$row['idvisa']."' data-visanumber='".$row['visanumber']."' data-idnumber='".$row['idnumber']."' data-statusapp='".$row['statusapp']."' data-accntVisaPhotoPath='".$row['accntVisaPhotoPath']."' data-passportPath='".$row['passportPath']."' data-subdate='".$row['subdate']."'>".$row['fName']." ".$row['lName']."</option>";
}
?>
</td>
<td align="center"><span class="visanumber"></span></td>
<td align="center"><span class="idnumber"></span></td>
<td align="center"><span class="statusapp"></span></td>
<td align="center"><img class="accntVisaPhotoPath" height="50" width="50"></img></td>
<td align="center"><img class="passportPath" height="50" width="50"></img></td>
<td align="center"><span class="subdate"></span></td>
</span>
</tr>
<tr>
<td>
<select name="users[]">
<?
mysqli_data_seek( $result, 0 );
echo "<option value=\"\">Select Person:</option>";
while ($row=mysqli_fetch_array($result)) {
echo "<option value='".$row['idvisa']."' data-visanumber='".$row['visanumber']."' data-idnumber='".$row['idnumber']."' data-statusapp='".$row['statusapp']."' data-accntVisaPhotoPath='".$row['accntVisaPhotoPath']."' data-passportPath='".$row['passportPath']."' data-subdate='".$row['subdate']."'>".$row['fName']." ".$row['lName']."</option>";
}
?>
</td>
<td align="center"><span class="visanumber"></span></td>
<td align="center"><span class="idnumber"></span></td>
<td align="center"><span class="statusapp"></span></td>
<td align="center"><img class="accntVisaPhotoPath" height="50" width="50"></img></td>
<td align="center"><img class="passportPath" height="50" width="50"></img></td>
<td align="center"><span class="subdate"></span></td>
</span>
</tr>
等等多达 10 个单选下拉菜单。
</table><br>
<input type="button" name="cancelvalue" value="CANCEL" onClick="self.close()">
<input name="reset" type="reset" value="Clear" height="14">
<input name="submit" type="submit" value="Send" height="14">
<br><br>
</form>
这是我的实际脚本http://www.mntr.workforceint.com/contract.php
我的意图是在选择 id 后发送电子邮件。
phpmail 当然已经准备好了,唯一困扰我的是如何提取/获取这些结果,如果他们选择了 2 个或更多的单个框。
和脚本:
<?php
/*//Disable error reporting
error_reporting(0);
*/
//Report runtime errors
//error_reporting(E_ERROR | E_WARNING | E_PARSE);
//Report all errors
error_reporting(E_ALL);
//end of error reporting
if(isset($_POST['submit']) && $_POST['submit'] == 'Submit') {
$size= sizeof($_POST['users']);
$i = 0;
// $message = null;
for($i=0; $i<$size; $i++){
$userId = $_REQUEST['users'][$i];
$visaNumber = $_REQUEST['visanumber'][$i];
$idNumber = $_REQUEST['idnumber'][$i];
$statusApp = $_REQUEST['statusapp'][$i];
$accntVisaPhotoPath = $_REQUEST['accntVisaPhotoPath'][$i];
$passportPath = $_REQUEST['passportPath'][$i];
$subdate = $_REQUEST['subdate'][$i];
$message .= mailContent($userId);
}
$to = $_POST['email'];
$subject = 'This is a test';
$message = 'hello';
$headers = 'From: xxx@live.com' . "\r\n" .
'Reply-To: xxx@live.com' . "\r\n" .
'X-Mailer: PHP/' . phpversion();
mail($to, $subject, $message, $headers);
}
function mailContent($userId) {
$stmt = "SELECT * FROM CV WHERE userid = '$userId'";
$query = mysqli_query($con,$stmt);
while($res = mysql_fetch_query($query)){
$visanumber = $res['visanumber'];
$statusapp = $res['statusapp'];
// OTHER LOGICS GO HERE
}
}
echo "<center>You have sent CV(s) </b><br/><br/><br/><br/>YOU MAY NOW CLOSE THIS WINDOW</center>";
?>
我已经检查过了,但我什么也没收到。
【问题讨论】:
-
500 内部服务器错误 - 当我尝试打开您的链接时。
-
我已经编辑了我的链接。
-
我真的想为您进一步解释。在我之前的尝试中,我使用了这些: $remittance =$objResult["remittance"]; $idvisa =$objResult["idvisa"]; $empname =$objResult["empname"]; $email =$objResult['email']; $emailTrans =$objResult["emailTrans"]; $contractStat =$objResult["contractStat"];因为它只需要处理一个 ID。但这一次,我需要处理多达 10 个下拉菜单。我希望你能明白我的意思。