2017-08-03 23 views
3

未知のテキスト入力の値を取得できません。私は現在、mysqlクエリによって返された行の配列を反復するforループを持っています。返されたデータは反復され、ページに表示されます。各行には独自のフォームとボタンが含まれています。ボタンがクリックされた場合は、配列内の同じ行の中にあった値を取得して別のページに送信したいと思います。私の質問は、行数が不明なので、どうすればボタンがクリックされた行の中の値を得ることができるだろうか?PHP:不明なテキストボックスの値を取得するには?

編集:あなたが画像で見ることができるように

enter image description here

、アコーディオンや内部のそのカードはforループによって生成されます。カードの数は、MySQLクエリによって返される行の数によって異なります。私の問題を検証するために、それぞれの "カード"には入力値が入っています。その値はMySQLクエリから来ているので、ユーザが "edit client"をクリックすると、カード内のテキストボックスの値を取得したいだけです。以下は各カードを生成するコードは次のとおりです。

コード:

$counter = 0; 
foreach($clients as $client) { 
echo ' 
<div class="card"> 
<div class="card-header" role="tab" id="heading'. $counter .'"> 
    <h5 class="mb-0"> 
    <div class="row"> 
     <div class="d-flex align-items-center schedule-flex"> 
      <div class="col-8 col-md-10"> 
       <a data-toggle="collapse" data-parent="#accordion" href="#collapse'. $counter .'" aria-expanded="true" aria-controls="collapse'. $counter .'"> 
        '. $client['fName'] .' '. $client['lName'] .' 
       </a> 
      </div> 
     </div> 
    </div> 
    </h5> 
</div> 
<div id="collapse'. $counter .'" class="collapse" role="tabpanel" aria-labelledby="heading'. $counter .'"> 
<div class="card-block"> 
    <form action="editClient.php"> 
     <div class="row"> 
      <div class="col-12 col-md-6"> 
       <label for="fname">First Name</label> 
       <input name="fname" class="form-control" type="text" value="'. $client['fName'] .'" disabled> 
      </div> 
      <div class="col-12 col-md-6"> 
       <label for="lname">Last Name</label> 
       <input name="lname" class="form-control" type="text" value="'. $client['lName'] .'" disabled> 
      </div> 
      <div class="col-12 col-md-6"> 
       <label for="address">Address</label> 
       <input name="address" class="form-control" type="text" value="'. $client['address'] .'" disabled> 
      </div> 
      <div class="col-12 col-md-6"> 
       <label for="phone">Phone Number</label> 
       <input name="phone" class="form-control" type="text" value="'. $client['telephone'] .'" disabled> 
      </div> 
      <div class="col-12 col-md-6"> 
       <label for="email">Email Address</label> 
       <input name="email" class="form-control" type="text" value="'. $client['email'] .'" disabled> 
      </div> 
     </div> 
     <button class="btn btn-lg btn-primary btn-block schedule-submit" type="submit">Edit Client</button> 
     <br /> 
    </form> 
</div> 
</div> 
</div> 
'; 
$counter++; 
+1

作業サンプルコードを入力できますか?エラーを知る方が簡単です。 – Sahathulla

+0

最初にコードを追加してください。 –

+1

@ankitsuthar編集を確認します – BeastMaster

答えて

0

私の知る限り、私はあなたがフォームの送信に問題があると思う見ることができます。あなたの説明とコードによれば、複数のフォームを生成しているようです。

  1. あなたのフォームにはmethod = "post"が含まれていないため、このアクションを追加しました。
  2. 各フォームを別々に送信するには、counterを使用して各フォームに固有のIDを追加しました。
  3. カウンタ番号を含むボタンのIDを追加したので、各フォームに固有のフォームIDとボタンIDが割り当てられました。これで、そのフォームを別々に送信できます。
  4. PHPを使用してフォームを送信できるようになりました。
  5. 私はフォームを送信するスクリプトを追加しました。まずボタンidをつかんで、そのボタンIDを使ってフォームを送信します。
  6. 最後に、送信する前に検証を確認してください。ここで

コードです:

$counter = 0; 
foreach($clients as $client) { 
echo ' 
<div class="card"> 
<div class="card-header" role="tab" id="heading'. $counter .'"> 
    <h5 class="mb-0"> 
    <div class="row"> 
     <div class="d-flex align-items-center schedule-flex"> 
      <div class="col-8 col-md-10"> 
       <a data-toggle="collapse" data-parent="#accordion" href="#collapse'. $counter .'" aria-expanded="true" aria-controls="collapse'. $counter .'"> 
        '. $client['fName'] .' '. $client['lName'] .' 
       </a> 
      </div> 
     </div> 
    </div> 
    </h5> 
</div> 
<div id="collapse'. $counter .'" class="collapse" role="tabpanel" aria-labelledby="heading'. $counter .'"> 
<div class="card-block"> 
    <form action="editClient.php" method="post" id="form'. $counter .'"> 
     <div class="row"> 
      <div class="col-12 col-md-6"> 
       <label for="fname">First Name</label> 
       <input name="fname" class="form-control" type="text" id="fname'. $counter .'" value="'. $client['fName'] .'" disabled> 
      </div> 
      <div class="col-12 col-md-6"> 
       <label for="lname">Last Name</label> 
       <input name="lname" class="form-control" type="text" id="lname'. $counter .'" value="'. $client['lName'] .'" disabled> 
      </div> 
      <div class="col-12 col-md-6"> 
       <label for="address">Address</label> 
       <input name="address" class="form-control" type="text" id="address'. $counter .'" value="'. $client['address'] .'" disabled> 
      </div> 
      <div class="col-12 col-md-6"> 
       <label for="phone">Phone Number</label> 
       <input name="phone" class="form-control" type="text" id="phone'. $counter .'" value="'. $client['telephone'] .'" disabled> 
      </div> 
      <div class="col-12 col-md-6"> 
       <label for="email">Email Address</label> 
       <input name="email" class="form-control" type="text" id="email'. $counter .'" value="'. $client['email'] .'" disabled> 
      </div> 
     </div> 
     <button class="btn btn-lg btn-primary btn-block schedule-submit edit_client_button" id="'. $counter .'" type="submit">Edit Client</button> 
     <br /> 
    </form> 
</div> 
</div> 
</div> 
'; 
$counter++; 


// Saperatedly add the Script to with your javascript files. I have added here just for example. put it in a right place. 

<script type="text/javascript">  

    $(".edit_client_button").click(function() { 
     var buttonid = this.id;    
     $("#form"+buttonid).submit();  
    }); 

</script> 

私はあなたのクリックで値を取得したい、そこから各入力でid属性を追加しました。 ボタンクリック時に入力値を取得するスクリプトを更新しました。

<script type="text/javascript">  

    $(".edit_client_button").click(function() { 
     var buttonid = this.id;    
     var fname = $('#fname'+buttonid); //Kevin 
     var lname = $('#lname'+buttonid); //Smith 
     var address = $('#address'+buttonid); //1212 Test Street 
     var phone = $('#phone'+buttonid); //8472934569 
     var email = $('#email'+buttonid); //[email protected] 



     // This variabls contail the input value which you want on click. 

     // Use console.log(); to see the value or simply alert(); 
     // example: console.log(email); or alert(email); 

    }); 

</script> 

あなたのコメントによれば、私はあなたを正しく得られませんでした。あなたは、あなたが価値フォームの入力を必要としていると言います。 例:ケヴィン・スミス内部のボタン、「編集クライアント」をクリックした場合

、私はテキストボックス内の値をつかむために私のPHPスクリプトのよう なり、すなわち ケビン・スミス、1212年のテストストリート、2929292929 [email protected]

私の推奨するスクリプトは、フォーム内のすべての値を提供しますが、入力値を個別に取得する場合は、回答コードを更新してください。

+0

しかし、私の問題は、ボタンをクリックすると、テキストボックスから値を取得しています。 Kevin Smithの "edit client"ボタンをクリックすると、私のPHPスクリプトがテキストボックス内の値、すなわちKevin、Smith、1212 Test Street、8472934569、[email protected]の値を取得します。 – BeastMaster

+0

私は答えを更新してください@BeastMasterを確認してください –

関連する問題