2014-05-21 3 views
0

현재 내 프로젝트의 지불 양식을 만들고 있습니다. 이제 폼의 선택을 기반으로 정규식을 만듭니다. 자리의 수는 없습니다보다 작거나 12보다 더 많은 경우 다음 사용자 A 은행을 선택에서, acc no. 양식이 허용하는 경우양식의 선택에 따라 다른 정규 표현식을 만듭니다.

<h1>Payment </h1> 
<fieldset> 
<legend> 
    <font size="6">Please input your payment information correctly</font> 
</legend> 
<p> 
<form action="" method="post"> 
    <ul> 
     <li> 
      Your Reservation Number: <?php echo $reservation_id;?><br> 
      <input type="hidden" name="reservation_id" value="<?php echo $reservation_id;?>"> 
      <input type="hidden" name="roomtype" value="<?php echo $roomtype;?>"> 
      <input type="hidden" name="num_of_rooms" value="<?php echo $num_of_rooms;?>"> 
      <input type="hidden" name="dor" value="<?php echo $dor;?>"> 
      <input type="hidden" name="dco" value="<?php echo $dco;?>"> 
      <input type="hidden" name="length_of_stay" value="<?php echo $length_of_stay;?>"> 
     </li> 
     <li> 
      Bank in From: <br> 
      <select name="bank_in_from" id="bank_in_from"> 
      <option value="">Select</option> 
      <option value="Bank A">Bank A</option> 
      <option value="Bank B">Bank B</option> 
      <option value="Bank C">Bank C</option> 

      </select> 
     </li> 
     <li> 
      Account No.: <br> 
      <input type="text" name="acc_no"> 
     </li> 
     <li> 
      Holder Name: <br> 
      <input type="text" name="holder_name"> 
     </li> 



      <input type="submit" value="Submit"> 
    <input type="reset" value="Clear" > 
     <li> 

    </ul> 

사건이

  • 처럼 지불 형태의 코드는
  • 자리 수가 없다 미만인 경우 또는 사용자가 은행 B를 선택 acc no. 형태가 허용한다면
  • 자리의 수가 적은 그쪽이없는 경우 사용자가 은행 C를 선택 acc no. 형태가 허용하는 경우보다 10 n 또는 9 개 이상

모든 계좌 번호가없는 문자 또는 특수 문자를 혼합 수는 분명하다.

어떻게 코드가 생겼습니까?

답변

0

이것을 처리하는 놀랍게도 간단한 방법은 사용하고자하는 다른 정규식 패턴을 나타 내기 위해 변수를 사용하는 것입니다.

따라서의 라인을 따라 뭔가 :

Array 
    (
     [0] => Array 
      (
       [0] => 1234563820 
      ) 

    ) 

그래서 당신이

$target_bank_number = $matches[0][0]; 

를 사용하여 은행 계좌 번호를 잡을 수 있으며, 당신이 할 수 있어야한다 : 출력됩니다

switch($chosen_bank){ 
     case('bankA'): 
      $appropriate_regex = '\d{12}'; 
      break; 
     case('bankB'): 
      $appropriate_regex = '\d{10}'; 
      break; 
     case('bankC'): 
      $appropriate_regex = '\d{9}'; 
      break; 
} 

// then you'll need something like: 

$submitted_string = $_POST['submitted_bank_number']; 
$pattern = "/$appropriate_regex/"; 
preg_match($pattern, $submitted_string, $matches, PREG_OFFSET_CAPTURE); 
print_r($matches); 

거기에서 가져 가라.

지금까지 처음에 그 변수의 보류를 받고으로, 당신은 당신의 폼 태그 = ""조치를 지정한대로 Calculating values with formulae from user input in PHP

에서 기본 폼 처리의 예를 볼 수 있습니다, 당신은 같은 것을 포함 할 것 사용자의 제출을 ​​처리 할 페이지 아래로 아래 다음과 같은 :?

<?php 

    if ($_POST){ 
      $php_varA = $_POST['submitted_form_valueA']; 
      $chosen_bank = $_POST['chosen_bank']; 

      //here process the input using regular expressions/ database access, etc, etc 

    }  

?> 

>

+0

에서는 위의에 코드를 적용? – user3573666

관련 문제