2015-11-05 39 views
5

フォームを作成しました。そのフォームを送信すると、ユーザーが入力を確認できるように確認タブが作成されました。ユーザーが入力を確認すると、フォームが提出されます。確認タブが表示されない

だから私は、私が確認]タブを表示するには、ボタンをクリックすると、フォームがちょうどクリアし、確認のタブが見られない、しかし確認]タブを表示するためにjqueryのを追加した...コード

の下に見つけてください

HTML

<div class="tab-content"> 
    <fieldset class="tab-pane active" id="form_tab"> 
     <form id="poform" method="GET"> 
     <table> 
       <tr> 
        <th colspan="2"><div class="header_3">Pre-Order Form</div></th> 
       </tr> 
       <tr> 
        <td><label>Account Number:</label></td> 
        <td><input type="text" name="accountnumber" id="accountnumber" value="" required/></td> 
       </tr> 
       <tr> 
        <td><label>Trade:</label></td> 
        <span class="text_11"> 
        <td><input type="radio" id="Buy" name="tradetype" class="tradetype" required value="Buy"/> Buy 
        <input type="radio" id="Sell" name="tradetype" class="tradetype" value="Sell"/> Sell </span></td> 
       </tr> 
       <tr> 
        <td><label>Metal:</label></td> 
        <span class="text_11"> 
        <td><input type="radio" id="Steel" name="metal" class="metal" required value="Steel"/> Steel 
        <input type="radio" id="Iron" name="metal" class="metal" value="Iron"/> Iron </span></td> 
       </tr> 
       <tr> 
        <td class="select"><label>Amount:</label></td> 
        <td><select id="amount" name="amount"> 
        <option value="">Select</option> 
        <?php include_once "selectamount.php"?></td> 
        </select> 
       </tr> 
       <tr> 
        <td class="select"><label>Date:</label></td> 
        <td><select id="date" name="date" id="date"> 
        <option value="">Select</option> 
        <?php include_once "selectdate.php"?></td> 
        </select> 
       </tr> 
       <tr> 
        <td colspan="2" align="center"> 
        <button type="button" id="submit_btn"> 
         <span class="chngetext">Check</span> 
        </button> 
        </td> 
       </tr> 
     </table> 
     </form> 
    </fieldset> 

    <fieldset class="tab-pane" id="conf_tab"> 
    <table> 
     <tr style="text-align:center"> 
      <th colspan="2"><div class="header_3">Pre-Order Ticket Details</div></th> 
     </tr> 
     <tr style="text-align:left"> 
      <td><label>Account Number:</label></td> 
      <td><mgin><span id="confirm_accountnumber"></span></mgin></td> 
     </tr> 
     <tr style="text-align:left"> 
      <td><label>Trade Pre-Order:</label></td> 
      <td><mgin><span id="confirm_tradetype"></span></mgin></td> 
     </tr> 
     <tr> 
      <td><label>Amount:</label></td> 
      <td><mgin><span id="confirm_amount"></span> 9999 Pooled Allocated <span id="confirm_metal"></span> Loco Singapore</mgin></td> 
     </tr> 
     <tr> 
      <td><label>On date:</label></td> 
      <td><mgin><span id="confirm_date"></span></mgin></td> 
     </tr> 
      <td><label>Pre-Order Discount:</label></td> 
      <td><mgin><span id="confirm_data"></span></mgin></td> 
     </tr> 
     <tr> 
      <td><label>Pre-Order Deposit:</label></td> 
      <td><mgin>SGD 5000.00</mgin></td> 
     </tr> 
     <tr> 
      <td><label>Additional follow up order:</label></td> 
      <td><mgin>New Sell Order to be given 2 days before purchase order date.</mgin></td> 
     </tr> 
     <tr> 
      <td colspan="2" align="center"><button type="submit" class="btn btn-default" id="confirm_btn">Confirm Order</button></td> 
     </tr>  
    </table> 
    </fieldset> 
</div> 

のjQuery

$(document).ready(function() { 
    $('#submit_btn').click(function() { 

    // Get the value of the field with 'firstname' id. 
    var accountnumber = $('#accountnumber').val(); 
    var tradetype = $('input.tradetype:checked').val(); 
    var amount = $('#amount').val(); 
    var metal = $('input.metal:checked').val(); 
    var date = $('#date').val(); 
    var data = "<?php include 'retrievepremordisc.php'; ?>"; 

    $('#confirm_accountnumber').text(accountnumber); 
    $('#confirm_tradetype').text(tradetype); 
    $('#confirm_amount').text(amount); 
    $('#confirm_metal').text(metal); 
    $('#confirm_date').text(date); 
    $('#confirm_data').text(data); 

    // Hide form tab and show confirmation tab 
    $('#form_tab').removeClass('active'); 
    $('#conf_tab').addClass('active'); 

    }); 
}); 

PHPファイル(retrievepremordisc.php)

<?php 
include_once "connect.php"; 
$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password); 

$form=$_GET; 
$trade=$form['tradetype']; 
$metal=$form['metal']; 
$amount=$form['amount']; 
$date=$form['date']; 

$stmt = $conn->query("SELECT Discount FROM Contracts WHERE Trade='$trade' AND Metal='$metal' AND Amount='$amount' AND ExpiryDate='$date'"); 
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) { 
    echo $row['Discount']; 
} 
?> 

ありがとうございました!

+0

[送信]ボタンをクリックすると、フォームは送信アクションを実行するため、jQueryコードは実行されません。 ' 'に、'を変更する。 –

+0

また、クリック関数 '$( '#checkbut')の中にclick関数を追加することもできます(clickイベントを得るためにeパラメータを追加する* /){' - 'e.preventDefault();' –

答えて

1

送信ボタンをクリックすると、フォームは送信アクションを実行するため、jQueryコードは実行されません。

<button type="button" name="submit" id="checkbut">Check Premium</button>

変更

<button type="submit" name="submit" id="checkbut">Check Premium</button>

他の方法はevent.preventDefault();を使用しています。

$(document).ready(function() { 
    $('#checkbut').click(function(e) { 
    e.preventDefault(); // This prevents the action of sending the form. 

    // Get the value of the field with 'firstname' id. 
    var accountnumber = $('#accountnumber').val(); 
    var tradetype = $('#tradetype').val(); 
    var amount = $('#amount').val(); 
    var metal = $('#metal').val(); 
    var date = $('#date').val(); 

    $('#confirm_accountnumber').text(accountnumber); 
    $('#confirm_tradetype').text(tradetype); 
    $('#confirm_amount').text(amount); 
    $('#confirm_metal').text(metal); 
    $('#confirm_date').text(date); 

    // Hide form tab and show confirmation tab 
    $('#form_tab').removeClass('active'); 
    $('#conf_tab').addClass('active'); 

    }); 
}); 

しかし:

のIdセレクタはページ内で一意でなければなりません。同じidのボタンが2つあります。固有の識別子で適切に名前を変更する必要があります。あなたのhtmlのコンテキストによって

<div id="Sellbut" class="toHide" style="display:none"><button type="submit" name="submit" id="checkbut">Check Premium</button></div> 
<div id="Buybut" class="toHide" style="display:none"><button type="submit" name="submit" id="checkbut">Check Discount</button></div> 

これらのボタンが異なるアクションを実行するように見えるので、あなたはそれを名前を変更する必要があります。

+0

実際には同じIDを持つ2つのボタンが同じ目的のためです。私はラジオボタンの選択に基づいてボタンを表示させたいので、どれが表示されるかを決定するもう1つのJqueryがあります。 '$(function(){ $ ($( '#Buybut'))$( '#Sellbut')。($( '#Buybut'))。 $( '#Buybut')。hide();} } {$( '#Buybut'})} { ); }); ' – miababy

+0

これは、上記のコードも動作していないと思います...任意の提案ですか? – miababy

+0

すべての質問を更新できますかあなたが持っているコードですか?お手伝いしましょう。 –

1

event.preventDefault()を使用します。あなたのクリック機能で。

+0

それはうまくいくでしょうが、なぜそれがうまくいくのか説明していれば、OPには役に立ちます。 –

0

各IDは、HTMLドキュメント内で一意である必要があります。どちらのボタンもid="checkbut"を使用しますが、$('#checkbut')のjQueryコールはその1つ(おそらく最初のもの)のみを参照し、もう1つはクリックハンドラをまったく取得しません。

同じidを持つ2つの要素がある場合にブラウザがどのように動作するか明確に定義されていないため、その動作はブラウザによって大きく異なる可能性があります。

id=class=をHTMLに変更し、セレクタを$(".checkbut")に変更して、両方を一度に参照することができます。

+0

実際には、同じIDを持つ2つのボタンは同じ目的のためのものです。私は、ラジオボタンの選択に基づいてボタン表示をしたいので、どちらが表示されているかを判断する別のJqueryを持っています... '($ {'(tradetype ' $( '#Sellbut')。hide();} if($(this)).val($(this))== '買い' ()== 'Sellbut')。show(); $( '#Buybut')。hide();}});}); ' – miababy

+0

私はこれのために、上記のコードも動作していないと思う...任意の提案? – miababy

+0

'$( '#checkbut')によって選択された要素の数を記録/警告してみましょう。彼らに共通のクラスを与え、それを選択するとよりうまくいくはずです。 – Joe

関連する問題