2016-07-22 4 views
0

단일 입력 필드가있는 두 개의 양식이 있습니다. 페이지가로드 될 때 첫 번째 양식을 표시하고이 첫 번째 양식을 제출할 때 나중에 사용할 수 있도록 세션에 입력 된 값을 유지하려고합니다. 또한 첫 번째 양식을 제출할 때 jquery를 사용하여 두 번째 양식을 숨김 해제하고 싶습니다. 두 번째 양식은 여러 제출을 수행합니다. 제가 직면하고있는 문제는 제출시 두 번째 양식이 첫 번째 양식을 가져오고 두 가지 양식을 제출하는 데 문제가 있다는 것입니다. 두 번째 양식을 일관되게 유지하고 첫 번째 양식을 처음에만 한 번 열어 보려고합니다.첫 번째 양식을 숨긴 다음 두 번째 양식을 표시합니다. Secnd 양식이 여러 제출을 수행합니다.

JS

<script> 
    $(document).ready(function() { 
     $("#submitvendor").click(function() { 

      $("#vendorform").hide(1000); 

      $("#imeiform").css("display", "block"); 


     }) 
    }); 
</script> 

HTML

<div id="vendorform" class="container" style = " position: relative; top: 50px ;left: 20px ; width: 500px; border: 7px solid #c68c53; border-bottom-left-radius: 30px; border-top-right-radius: 30px; padding: 25px;"> 
    <form id="vendor" class="form-inline" role="form" action="<?php echo $_SERVER['PHP_SELF']; ?>" method = "POST" > 
    <div class="form-group"> 
     <label >Vendor Reference:&nbsp&nbsp&nbsp&nbsp&nbsp</label> 
     <input type="text" class="form-control" id="vendorreference" name="vendorreference" placeholder="Enter Vendor Reference here" required>&nbsp&nbsp&nbsp 
    </div> 
    <input type="submit" id="submitvendor" name="Submit" value="Submit"> 
    </form> 
</div> 
<div id="imeiform" class="container" style = " display: none; position: relative; top: 70px ;left: 20px ; width: 500px; border: 7px solid #c68c53; border-bottom-left-radius: 30px; border-top-right-radius: 30px; padding: 25px;"> 
    <form class="form-inline" role="form" action="<?php echo $_SERVER['PHP_SELF']; ?>" method = "POST" > 
    <div class="form-group"> 
     <label >&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbspIMEI:&nbsp&nbsp&nbsp&nbsp&nbsp</label> 
     <input type="text" class="form-control" id="imei" name="imei" placeholder="Enter IMEI here" required >&nbsp&nbsp&nbsp 
    </div> 
    <input type="submit" id="imei" class="btn btn-default" name="Submit" value="SUBMIT"> 
    </form> 
</div> 

PHP

012 : 여기

내가 함께 일하고 코드입니다
+0

@editor, 마지막 편집은 원래 게시물에 대해 중요한 것을 숨기고 있습니다. 헤더 조작 ('session_start()')을 포함하는 PHP 스크립트는 HTML이 버퍼/브라우저로 보내진 후 페이지 아래로 내려갑니다. 이 정보는 특정 행동을 설명 할 수 있으며, 편집은 PHP를 추출하여 격리 된 창에 표시함으로써 숨 깁니다. – BeetleJuice

답변

1

,

HTML

<div id="vendorform" class="container" style = "display:<?php echo ($top_form == "Y") ? "block": "none"; ?>; position: relative; top: 50px ;left: 20px ; width: 500px; border: 7px solid #c68c53; border-bottom-left-radius: 30px; border-top-right-radius: 30px; padding: 25px;"> 
    <form id="vendor" class="form-inline" role="form" action="<?php echo $_SERVER['PHP_SELF']; ?>" method = "POST" > 
     <div class="form-group"> 
      <label >Vendor Reference:&nbsp&nbsp&nbsp&nbsp&nbsp</label> 
      <input type="text" class="form-control" id="vendorreference" name="vendorreference" placeholder="Enter Vendor Reference here" required>&nbsp&nbsp&nbsp 
     </div> 

     <input type="submit" id="submitvendor" name="first_form" value="Submit"> 
    </form> 
</div> 


<div id="imeiform" class="container" style = "display:<?php echo ($bottom_form == "Y") ? "block": "none"; ?>; position: relative; top: 70px ;left: 20px ; width: 500px; border: 7px solid #c68c53; border-bottom-left-radius: 30px; border-top-right-radius: 30px; padding: 25px;"> 
    <form class="form-inline" role="form" action="<?php echo $_SERVER['PHP_SELF']; ?>" method = "POST" > 
     <div class="form-group"> 
      <label >&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbspIMEI:&nbsp&nbsp&nbsp&nbsp&nbsp</label> 
      <input type="text" class="form-control" id="imei" name="imei" placeholder="Enter IMEI here" required >&nbsp&nbsp&nbsp     
     </div> 

     <input type="submit" id="imei" class="btn btn-default" name="second_form" value="SUBMIT"> 
    </form> 
</div> 

PHP

<?php 
session_start(); 
include_once('config.php'); 
$top_form = "Y"; 
$bottom_form = "N"; 

if (isset($_POST['first_form'])) {  

    if (!isset($_SESSION['vendor'])) { 
     $_SESSION['vendor'] = $_POST['vendorreference']; 
    }  

    $top_form = "N"; 
    $bottom_form = "Y"; 
} 

if (isset($_POST['second_form'])) { 

    $imei = $_POST['imei']; 
    $top_form = "N"; 
    $bottom_form = "Y"; 
    echo "Second form submitted"; 
} 
?> 

나는 스타일을 제어하는 ​​상단에있는 두 개의 플래그를 설정 한 행동, 그것이 당신을 위해 작동하는지 알려주십시오.

+0

Worked. 감사! –

+0

BTW, 전이 효과를 위해 자바 스크립트를 선택했습니다. –

+0

안녕하세요. Bro! ;) –

0

첫 번째 양식을 숨기는 가장 간단한 방법은 제출 한 후 해당 CSS를 display:none으로 설정하는 것입니다.

상단에 PHP 로직을 넣으십시오. session_start()은 특히 HTML이 브라우저로 전송되기 전에 시작 부분에 있어야합니다. PHP는 양식이 제출 된시기를 알 수 있으므로이를 사용하여 적절한 양식을 설정할 수 있습니다. 자바 스크립트

<?php 
session_start(); 
... 
$vendor_style = isset($_POST['Submit'])? 'display:none;': 'display:block;'; 
$imei_style = isset($_POST['Submit'])? 'display:block;': 'display:none;'; 
... 
?> 

에 대한 필요가 그런 다음 HTML의 페이지 아래로, 당신은 분명히 당신이해야합니다 아무도 또는 블록이 첫 번째 양식이

<form id="vendor" style="<?= $vendor_style ?>" class="form-inline"... 
... 
<form id="imei" style="<?= $imei_style ?>" class="form-inline"... 

를 제출되었는지 여부에 따라하지에 표시를 설정할 수 있습니다 PHP에서 몇 가지 형식 유효성 검사를 수행하지만 아이디어를 얻을 수 있습니다.

당신이 단순히 사용하여 PHP를 달성 할 수
관련 문제