1

これはクライアントリストであると想定されており、行をクリックして選択し、データベースに送信してcronジョブを実行し、それらを取得して電子メールで送信します。

チェックボックスを使用する代わりに行を強調表示しようとしています。そのため、1つはクライアントID用、もう1つは行がクリックされたかどうかを確認するためのboolの2つの非表示要素を配置しました。

私が理解できないのは、特定の行の要素値(チェック済み)を切り替える方法です。

<table>
<tbody>
<tr class="contactrow">
<input type="hidden" name="id" value="995"/>
<input type="hidden" name="checked" value="FALSE"/>
<td>Andrew Ostrich</td>
<td>AO Company</td>
<td>7537535</td>
<td>ao@aocompany.com</td>
</tr>
<tr class="contactrow">
<input type="hidden" name="id" value="296"/>
<input type="hidden" name="checked" value="FALSE"/>
<td>Brendon Evans</td>
<td>Institute of Modern Arts</td>
<td>648648468</td>
<td>bevans@ioma.co.uk</td>
</tr>
<tr class="contactrow">
<input type="hidden" name="id" value="421"/>
<input type="hidden" name="checked" value="FALSE"/>
<td>Rudy Thompson</td>
<td>Marine CORP</td>
<td>95939288</td>
<td>Rudee@mcorp.es</td>
</tr>
</tbody>
</table>

また、 http://jsfiddle.net/FHjAc/

4

3 に答える 3

1

問題の一部は、サーバーがチェックされたクライアントIDを識別できないことです。すべてがinput[type=checkbox]同じname属性を共有します。これは、各パラメーターを識別するために使用されます。

name属性をに変更するchecked[__ID__]と、パラメーターをループして、それらのレコードをデータベースに送信できます。

PHPでは、次のようにします。

<?php

$checked = $_POST['checked'];

foreach( $checked as $id ) {
  // do something with the $id here
}

アップデート

チェックされたフィールドに非表示の入力を使用していることに気づきませんでした。チェックボックスに変更すると、作業がはるかに簡単になります。

HTMLこれは、HTMLをマークアップする方法です。CSSを使用して、チェックボックスを非表示にすることができますdisplay: none

<tr class="contactrow">
  <td>
    <input type="checkbox" name="checked[421]" />
    Rudy Thompson
  </td>
  <td>Marine CORP</td>
  <td>95939288</td>
  <td>Rudee@mcorp.es</td>
</tr>

jQuery

$(function () {
  $('.contactrow').click(function () {
    var checkbox = $(this).find('input[type=checkbox]');
    checkbox.prop('checked', !checkbox.prop('checked'));
    $(this).toggleClass('contactrow_highlight');
  });  
});
于 2012-11-19T13:27:42.790 に答える
0

私はこれをテストしました、そしてそれは私のために働きます。

$(function () {
    $('.contactrow').click(function () {
        $(this).toggleClass("contactrow_highlight");
        $(this).find("input").each(function(){
            if($(this).attr("name") == "checked"){
                if($(this).val() == "FALSE"){
                    $(this).val("TRUE");
                } else {
                    $(this).val("FALSE");                   
                }
            }
        });
    });
})
于 2012-11-19T13:33:59.800 に答える
0

どうぞ: http: //jsfiddle.net/AuYZf/1/

クリックした行要素の最初の子の兄弟を取得できます。3番目は目的の要素であるように見えます。次に、値を切り替えるだけです。

var inputElement = this.firstChild.nextSibling.nextSibling.nextSibling;
inputElement.value = (inputElement.value != "true")

(文字列 "false"はまだtrueと評価されるため、!=を使用しました)
そして、jQueryを使用してすべてをループすることすらありません。

于 2012-11-19T13:34:47.347 に答える