Jong
Jong

Reputation: 35

Emailing PHP based on the Results

I have this drop down (10 selects) which upon selecting, will email this based on the select.

And here is my full script:

<?
/*//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">&nbsp;Applicant Name&nbsp;</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">&nbsp;Visa&nbsp;</div></th>
    <th> <div align="center">&nbsp;Passport&nbsp;</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>

And so on up to 10 single select dropdown.

</table><br>
    <input type="button" name="cancelvalue" value="CANCEL" onClick="self.close()"> 
    <input name="reset" type="reset" value="Clear" height="14"> &nbsp;&nbsp;
    <input name="submit" type="submit" value="Send" height="14">
<br><br>
</form>

And here is my ACTUAL script http://www.mntr.workforceint.com/contract.php

My intent is to send an email, after selecting the id's.

The phpmail is of course ready, the only thing that is bugling me is how to to extract/fetch those results, if they have selected 2 single boxes or more.

and the script:

 <?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: [email protected]' . "\r\n" .
    'Reply-To: [email protected]' . "\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>";
?> 

I have checked it but I received nothing.

Upvotes: 0

Views: 108

Answers (3)

Anto S
Anto S

Reputation: 2449

Below is the HTML code:

    <?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

// Start the session
session_start();

    if(isset($_POST['add']) && $_POST['add'] == 'Add'){
        echo '<pre>'; print_r($_POST); die;
    }
?>
<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>
<?php

 $con=mysqli_connect("localhost","root","","test");

 // 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">&nbsp;Applicant Name&nbsp;</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">&nbsp;Visa&nbsp;</div></th>
      <th> <div align="center">&nbsp;Passport&nbsp;</div></th>
      <th> <div align="center"><font color="red">Date</div></th>
    </tr>
    <tr>
      <td><select name="users[]">
          <?php echo "<option value=\"\">Select Person:</option>";?><br>
          <?php 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>
        <?php

//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[]">

    <?php 
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[]">

    <?php 
 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[]">

    <?php 
 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>

  </table>
  <br>
  <input type="button" name="cancelvalue" value="CANCEL" onClick="self.close()">
  <input name="reset" type="reset" value="Clear" height="14">
  &nbsp;&nbsp;
  <input name="submit" type="submit" value="Send" height="14">
  <br>
  <br>
</form>

Below is the contractEmail.php

 <?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'] == 'Send') {

$size= sizeof($_POST['users']);
$i = 0;


$message = NULL;

//    $message = null;
for($i=0; $i<$size; $i++){


    $userId = $_REQUEST['users'][$i];

    $message .= mailContent($userId);


   }

$to      = $_POST['email'];
$subject = 'This is a test';
$headers = 'From: [email protected]' . "\r\n" .
    'Reply-To: [email protected]' . "\r\n" .
    'X-Mailer: PHP/' . phpversion();


mail($to, $subject, $message, $headers);
}


function mailContent($userId) {


    $con=mysqli_connect("localhost","root","","test");
    $stmt = "SELECT * from CV where idvisa = '$userId'";
    $result = mysqli_query($con, $stmt);

    $row=mysqli_fetch_array($result);


    $visaNumber = $row['visanumber'];
    $idNumber = $row['idnumber'];
    $statusApp = $row['statusapp'];
    $accntVisaPhotoPath = $row['accntVisaPhotoPath'];
    $passportPath = $row['passportPath'];
    $subdate = $row['subdate'];

    $message = "Hi <br /> Here is the details <br />visaNumber : '$visaNumber' <br />idNumber : '$idNumber' <br />statusApp : '$statusApp' <br />accntVisaPhotoPath : '$accntVisaPhotoPath' <br />passportPath : '$passportPath' <br />subdate : '$subdate' <br />";
      // OTHER LOGICS GO HERE

    return $message;

}
echo "<center>You have sent CV(s) </b><br/><br/><br/><br/>YOU MAY NOW    CLOSE THIS WINDOW</center>";
?>

This works.But lot of Optimization required.

Upvotes: 0

Ravi Chauhan
Ravi Chauhan

Reputation: 1458

Use php mailer. you will never any problem facing.

https://github.com/PHPMailer/PHPMailer

Upvotes: 0

Adam
Adam

Reputation: 18807

the only thing that is bugling me is how to to extract/fetch those results, if they have selected 5 items or more

You wont be able to select multiple options unless your specify the multiple attribute on your select tag.

You also have to declare an array name attribute like <select multiple name="myoptions[]" size="10">

You then will be able to know the selected options using the array $myoptions[] in PHP.

Upvotes: 1

Related Questions