2015-08-27 6 views
0

У меня есть список свойств, и я получаю список пользователей, которые соответствуют моим критериям выбора.Как получить значение выбранного значения текстового поля, используя php

Мне нужно отправить почту избранным пользователям.

Я проверяю все опции, чтобы проверить каждого пользователя.

и у меня есть текстовое поле для каждого пользователя, чтобы изменить стоимость аренды.

И я выбрал некоторых пользователей и нажимаю на отправку, мне нужно отправить почту со значением в текстовое поле.

Я хочу получить выбранное значение текстового поля, чтобы сформировать код отправки.

enter image description here

в картинке есть флажок для каждого свойства и checkbob, чтобы проверить все. и у меня есть текстовое поле по цене.

, когда я нажимаю на отправить, выбрав некоторые свойства я хочу отправить почту посланной аренда стоимость

Вот пример кода.

while($tenant = mysqli_fetch_array($result)) 
     { 
     echo ' 
     <tr> 

      <td> 
       <a href="property.php?id='.$pro['id'].'"><img src="'.(($pro['image_1']) ? $pro['image_1'] : 'images/placeholder.png').'" alt="" width="100"></a> 
      </td> 

      <td><a href="#">'.$name['name'].$tenant['tenant_id'].' </a><br> '.$pro['name'].'</td> 

      <td><b>'.$tenant['lease_exp'].'</b><br><i>'.$pro['ready'].'</i></td> 

      <td>'.$pro['type'].'</td> 

      <td><div class="price"><strong>$</strong><span>'.$tenant['rent_from'].'-'.$tenant['rent_to'].'</span></div><br><br><input type="text" name="new_rent'.$i.'" value='.$pro['rent'].' class="form-control" style="width:30%;" ></td> 

      <td> 
       <input type="checkbox" name="rent[]" id="rent'.$i.'" value="'.$tenant['tenant_id'].'"> Send 

      </td> 
     </tr> 
     '; 
    } 

    <script> 
    $(document).ready(function() { 
    $('#all').change(function(){ 
    var ckb_status = $("#all").prop('checked'); 
    $('input[type="checkbox"]').prop("checked", ckb_status); 
    }); 
    }); 
    </script> 

    if(isset($_POST['submit'])) { 
     if(!empty($_POST['rent'])) { 
      print_r($_POST); 
     foreach($_POST['rent'] as $check) { 

      $tenant_profile = "SELECT * FROM tenant where id=".$check; 
      $prof = mysqli_query($link, $tenant_profile); 
      $profile = mysqli_fetch_array($prof); 



      //echo $tenant_profile; 
      //echo "</br>"; 
      //echo $pro['name']; 

      echo $_POST['new_rent'];echo "</br>"; 

      $to  = $profile['email']; 
      $subject = 'Price Change Alert'; 
      $header = "From: ".ADMIN_EMAIL."\r\n"; 
      $header.= "MIME-Version: 1.0\r\n"; 
      $header.= "Content-Type: text/plain; charset=utf-8\r\n"; 
      $header.= "X-Priority: 1\r\n"; 
      $message = '' ; 
      $message .= "<div><p>Dear User there is a price drop for the property 
      <a href='".$_SERVER['SERVER_NAME']."/property.php?id=".$pro['id']."'>".$pro['name']."</a></p> 
      <p>Owner offering you ".$_POST['new_rent'].". </p> 
      <p>please contact the owner for the complete details. </p> 
      <p>Owner email id:#</div>"; 

      $mail1 = mail($to, $subject, $message, $header); 

      if($mail1) { echo 'mail sent successfully'; } 


     }// foreach 
     } //empty checkbox check 
    else { echo "Plase Check Any Result"; } 
    }//submit 
+0

В чем проблема? – RiggsFolly

+0

Где находится текстовое поле? –

+1

он написал текстовое поле вместо флажка. @AedixRhinedale –

ответ

0
Count how many checkbox are getting checked. 

$rent=$_POST['rent']; // Changes Done 
$SelectedCheckbox=sizeof($rent); // Changes Done 
for($i=0;$i<$SelectedCheckbox;$i++) 
----------------------------------------------------------------------- 
<? 
while($tenant = mysqli_fetch_array($result)) 
     {?> 
     <tr> 
      <td> 
       <a href="property.php?id='.$pro['id'].'"> 
         <img src="images/placeholder.png" alt="" width="100"> 
       </a> 
      </td> 
      <td><a href="#"><?echo $name['name'].$tenant['tenant_id'];?></a><br><?echo $pro['name'];?></td> 
      <td><b><?echo $tenant['lease_exp']?></b><br><i><?echo $pro['ready'];?></i></td> 
      <td><?echo $pro['type'];?></td> 
      <td> 
       <div class="price"><strong>$</strong><span><?echo $tenant['rent_from'].'-'.$tenant['rent_to'];?></span></div><br><br> 
       <input type="text" name="new_rent[]" value="<?echo $pro['rent']?>" class="form-control" style="width:30%;" ></td> //Changes Done 
      <td> 
       <input type="checkbox" name="rent[]" id="rent'.$i.'" value="<?echo $tenant['tenant_id'];?>"> Send 
      </td> 
     </tr> 
     <?}> 

    <script> 
    $(document).ready(function() { 
    $('#all').change(function(){ 
    var ckb_status = $("#all").prop('checked'); 
    $('input[type="checkbox"]').prop("checked", ckb_status); 
    }); 
    }); 
    </script> 

    if(isset($_POST['submit'])) 
    { 
     if(!empty($_POST['rent'])) 
     { 
     print_r($_POST); 
     $rent=$_POST['rent']; // Changes Done 
     $SelectedCheckbox=sizeof($rent); // Changes Done 
     for($i=0;$i<$SelectedCheckbox;$i++) // Changes Done 
     { 
      $tenant_profile = "SELECT * FROM tenant where id=".$check; 
      $prof = mysqli_query($link, $tenant_profile); 
      $profile = mysqli_fetch_array($prof); 

      echo $_POST['new_rent'];echo "</br>"; 

      $NewRent=$new_rent[$i]; //Changes Done 

      $to  = $profile['email']; 
      $subject = 'Price Change Alert'; 
      $header = "From: ".ADMIN_EMAIL."\r\n"; 
      $header.= "MIME-Version: 1.0\r\n"; 
      $header.= "Content-Type: text/plain; charset=utf-8\r\n"; 
      $header.= "X-Priority: 1\r\n"; 
      $message = '' ; 
      $message .= "<div><p>Dear User there is a price drop for the property 
      <a href='".$_SERVER['SERVER_NAME']."/property.php?id=".$pro['id']."'>".$pro['name']."</a></p> 
      <p>Owner offering you ".$NewRent.". </p> 
      <p>please contact the owner for the complete details. </p> 
      <p>Owner email id:#</div>"; 

      $mail1 = mail($to, $subject, $message, $header); 

      if($mail1) { echo 'mail sent successfully'; } 


     }// for 
     } //empty checkbox check 
    else { echo "Plase Check Any Result"; } 
    }//submit 
+0

Почему он должен получить кол-во флажков? 'foreach' делает это автоматически. – Barmar

0

$POST['new_rent'] ничего не найдут, потому что текстовые поля называются new_rent$i.

Лучшим способом было бы использовать имена массивов для флажков и текстовых полей и использовать тот же $i, что и индекс массива для обоих.

$i = 0; 
while($tenant = mysqli_fetch_array($result)) 
    { 
    echo ' 
    <tr> 

     <td> 
      <a href="property.php?id='.$pro['id'].'"><img src="'.(($pro['image_1']) ? $pro['image_1'] : 'images/placeholder.png').'" alt="" width="100"></a> 
     </td> 

     <td><a href="#">'.$name['name'].$tenant['tenant_id'].' </a><br> '.$pro['name'].'</td> 

     <td><b>'.$tenant['lease_exp'].'</b><br><i>'.$pro['ready'].'</i></td> 

     <td>'.$pro['type'].'</td> 

     <td><div class="price"><strong>$</strong><span>'.$tenant['rent_from'].'-'.$tenant['rent_to'].'</span></div><br><br><input type="text" name="new_rent['.$i.']" value='.$pro['rent'].' class="form-control" style="width:30%;" ></td> 

     <td> 
      <input type="checkbox" name="rent['.$i.']" id="rent'.$i.'" value="'.$tenant['tenant_id'].'"> Send 

     </td> 
    </tr> 
    '; 
    $i++; 
} 

Затем вы можете пройти через массивы и получить соответствующие входы.

foreach ($_POST['rent'] as $i => $check) { 
    $new_rent = $_POST['new_rent'][$i]; 
    $tenant_profile = "SELECT * FROM tenant where id=".$check; 
    $prof = mysqli_query($link, $tenant_profile); 
    $profile = mysqli_fetch_array($prof); 



    //echo $tenant_profile; 
    //echo "</br>"; 
    //echo $pro['name']; 

    echo $_POST['new_rent'];echo "</br>"; 

    $to  = $profile['email']; 
    $subject = 'Price Change Alert'; 
    $header = "From: ".ADMIN_EMAIL."\r\n"; 
    $header.= "MIME-Version: 1.0\r\n"; 
    $header.= "Content-Type: text/plain; charset=utf-8\r\n"; 
    $header.= "X-Priority: 1\r\n"; 
    $message = '' ; 
    $message .= "<div><p>Dear User there is a price drop for the property 
    <a href='".$_SERVER['SERVER_NAME']."/property.php?id=".$pro['id']."'>".$pro['name']."</a></p> 
    <p>Owner offering you ".$new_rent.". </p> 
    <p>please contact the owner for the complete details. </p> 
    <p>Owner email id:#</div>"; 

    $mail1 = mail($to, $subject, $message, $header); 

    if($mail1) { echo 'mail sent successfully'; } 


}// foreach 
+0

благодарит за код. Но это не работает. Я получаю одно значение или первое выбранное значение, и значение текстового поля не отправляется в цикл. – chaitanya

+0

Я допустил ошибку. Я помещал '$ i' внутри строки, но не заметил, что она была сделана с одинарными кавычками, поэтому переменные не расширяются. Я изменил его, чтобы использовать конкатенацию. – Barmar

Смежные вопросы