2017-01-21 16 views
1

こんにちは私は本当にチェックボックスに苦労しています。私はmysqlテーブルからHoursの詳細を取り込み、新しい時間を追加するときに働く残業チェックボックスを持っていますが、チェックボックスの変更をデータベースに保存することができます。マネージャーはそれが残業であることに同意しない。あなたが以下に示すように。配列内の動的チェックボックスを変更してmysqlデータベースを更新する

これは配列に読み込まれるので、右のテキストボックスをchg_hours_show_ovtという名前に変更する方法はわかりません。データベースに隠され、その後更新されるが

Showing the checkboxes

私は次のことを試してみましたが、私は右のライン上だと任意のヘルプは非常に感謝されるかはわかりません。

私は以下のようにデータベースからフォームをインポートします。私は本当にそれがないかもしれないし、通常はされませんが、私はそれが他にどのように行うか分からなかったので、チェックしたかった。 .val?しかし、これまで何をしても全く変わらない。私は私がここにあるすべてのチェックボックスを変更することを少し心配ですか?

私はまだ非常にすべての言語、特にjavaとjqueryにはとても新しいです。 ありがとうございます

$('#chg_hours_ovt').on('change',function() { 
     if($(this).checked) { 
     $('#chg_hours_show_ovt').val($('#chg_hours_ovt').val()); 
     } 
}); 


</script> 

  while ($list_hours = mysqli_fetch_array($hours_result)) 
      { 
       echo " <table border ='0' table width = 95%>"; 
       echo '<td> <input type="hidden" name="chg_hrs_id[]" value="'.$list_hours['unique_id'].'">'; 
       echo '<td> Start Time <input type="time" name="chg_hrs_str[]" value="'.$list_hours['start_time'].'" >'; 
       echo '<td> Finish Time <input type="time" name="chg_hrs_fin[]" value="'.$list_hours['finish_time'].'">'; 
       echo '<td> Date Of Work <input type="date" name="chg_hrs_date[]" value="'.$list_hours['date'].'">'; 
       echo '<td> Overtime <input type="checkbox" name="chg_hrs_ovt[]" '.($list_hours["overtime"]==1 ? 'checked="checked"' : ''). '>'; 
       echo '<td> Overtime <input type="text" name="chg_hrs_show_ovt[]" value=' .($list_hours["overtime"]==1 ? '1' : '0').'>'; 
       echo "</tr>"; 

      } 
      echo "</table>";  
+0

最初に: '$( '#chg_hours_ovt')'で、 'name'ではなく' id'ですべての要素を選択します。クラスセレクタに変更して、そのテーブルの最後の列を探します。 – Jeff

+0

second: 'chg_hrs_ovt'の値を' ... show_ovt'に引き継ぐ必要はありません:チェックボックスの値もサーバに送られます。そして、dbを更新するために、そのチェックボックスの変更にリスナーを作ることができます。 – Jeff

+1

* "特にja​​va" * - ニックピッキングはここですが、javascriptは*全く違う* to java;あなたはそれらの2つが混ざってしまわないように注意してください。同様に、jQueryは言語ではありません.JavaScriptライブラリです。 –

答えて

1

これを試してみてください:私はあなたが変数 'c​​hg_hrs_show_ovt []' を必要といけないことを推測しかし

$("input[name='chg_hrs_ovt[]']").on('change', function() { 
     var bValue = $(this).is(':checked') ? 1 : 0; 
     //get current row 
     var row = $(this).closest('tr'); 
     //find overtime 
     row.find("input[name='chg_hrs_show_ovt[]']").val(bValue);  
    }); 

、あなただけの 'chg_hrs_ovtを[]' 送信され、サーバー側のそれをキャッチできます。

+0

おはようございます、私はそれを試してくれてありがとうございましたが、残業チェックボックスをクリックしても変更はありません。 –

+0

結果を見てみましょう:https://jsfiddle.net/edu_guerr/9g14gg29/1/、jqueryを外部リソースとして追加する必要があります(例:https://ajax.googleapis.com/ajax/libs/jquery/)。 3.1.1/jquery.min.js – rescobar

+0

こんにちはレスコバールお返事ありがとうございました。私が<! - jquery javascript library - > これは私のサイトにダウンロードしたものではありませんでしたが、あなたが提案した後のライブラリを追加しましたが、私のサイトの他の部分はフィールドの追加を停止しましたが、私は仕事を持っていますが、それは両方の実行する必要があるかどうか、または問題を引き起こすかどうかはわかりません。 –

関連する問題