2017-01-06 3 views
1

選択ドロップダウンを持つフォームを使用しています。私は、フォームアクションフィールドで$_GETリクエストとして選択されたオプションから得られた値を渡したいが、foreachループの外でそれにアクセスする方法はある。ここで私が書いたコードサンプルがある

<form id="dynamicForm" action="client-detail-dynamic.php?id=<?php echo $_GET['id']; ?>&r_id=<?php **PASS THE DROPDOWN VALUE ID HERE** ?>" method="post"> 
    <select class="form-control" id="dynamicfy" name="dynamicfy"> 
     <?php  
     $j = 0; 
     foreach($payment_data as $pd): 
     ?> 
      <option value="<?php echo $payment_data[$j]->r_id; ?>"><?php echo $payment_data[$j]->fy; ?></option> 
     <?php $j++; endforeach; ?> 
    </select> 
</td> 
<td class="col-md-4"> 
    <input type="submit" name="submit" id="submit" class="btn btn-sm btn-success"> 
</td> 
</form> 

注:$payment_dataは、フィールド名を持つテーブルのデータを含むarrayあるr_idfyなど

+0

投稿方法はどうですか?あなたは必要ありませんか? –

+0

いいえ、私はポスト値を必要としません....次のページでさらに処理するために必要な値を取得するだけです –

+0

提出時に値を渡したいですか? –

答えて

0

FORM ACTIONからページを変更するのではなく、値を選択してheader:locationに渡されたurlに設定します。

これを試してください。何をしようとする

``<?php 


     if(isset($_POST['submit']) 
     { 
      $option = $_POST['dynamicfy']; 
      $id = $_POST['id'] 
      header('location: http://client-detail-dynamic.php?id=$id,r_id=$option'); 
     } 

     ?> 

    <form id="dynamicForm" action="" method="post"> 
    <select class="form-control" id="dynamicfy" name="dynamicfy"> 
    <?php 

     $j = 0; 
     foreach($payment_data as $pd): 

    ?> 
    <option value="<?php echo $payment_data[$j]->r_id; ?>"><?php echo     $payment_data[$j]->fy; ?></option> 
    <?php $j++; endforeach; ?> 
    </select> 
    </td> 
    <td class="col-md-4"> 
    <input type="hidden" name="id" value="<?php echo $_GET['id']; ?> 
    <input type="submit" name="submit" id="submit" class="btn btn-sm btn-success"> 
    " /> 

    </td> 
    </form> 
+0

笑、あなたと私は実質的に同じ答えをしました。 –

+0

ええ、それはする必要があります;) –

+0

はいそれをしました......ありがとう:-) –

0

ドロップダウンの選択に値を変更するには、あなたが使用する必要があります選択ボックスの変更に関するjQuery。 同じことについては、次のコードを参照してください。アクションページに$ _POST [「dynamicfy」]を使用してと

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script> 
<script type="text/javascript"> 
    jQuery(Document).ready(function() { 
     jQuery('#dynamicfy').change(); 
    }); 

    jQuery('#dynamicfy').change(function() { 
     jQuery('#dynamicForm').attr('action', 'client-detail-dynamic.php?id=' +<?php echo $_GET['id']; ?> + '&r_id=' + jQuery(this).val()); 
    }); 

</script> 

あなただけのアクションページ上の選択のドロップダウンをしたいならば、あなたはまた、アクションページ上のドロップダウンを選択しますことに、「クライアント・ディテール・dynamic.php」

0

はどこか$_GET['id]に基づき行くれます。それはあなたが最初に要求をしてコードを実行しなければならないので、サーバー側では不可能です。あなたのフォームデータをこのURLに持ってきていない場合は、この提案を試してみてください。しかし、私が約not possibleについて忘れる。

<?php 

if(isset($_POST['submit-button'])) { 
    header("location: file.php?something=" . $_GET['id']); 
} 

// set the form action to nothing and add this to the same page the form is on 
// and you can redirect based on the $_GET['id'] 
?> 
1

これには2つの方法があります。

まず方法

あなたは二つの値

if(isset($_POST['submit'])){ 
    $id=$_POST['id']; 
    $r_id=$_POST['dynamicfy']; 
    header("location: client-detail-dynamic.php?id=" . $id . "&r_id=" . $r_id . ""); 
    exit(); 
} 

セカンドを取得します提出オン

<form id="dynamicForm" action="" method="post"> 
<input type="hidden" name="id" value="<?php echo $_GET['id']; ?>"> 

id.Putフォームアクションヌルの値を格納するためのフォーム要素内に隠しフィールドを作成します。メソッドを使用するjavascript

<select class="form-control" id="dynamicfy" name="dynamicfy" onchange="rdrt(this.value)"> 

<script> 
    function rdrt(str){ 
     id=<?php echo $_GET['id']; ?>; 
     if(str!=""){ 
     location.href="client-detail-dynamic.php?id=" + id + "&r_id=" + str; 
     } 
    } 
</script> 
+0

印象派の答え....ありがとうございます –

+0

あなたは歓迎です@a –

関連する問題