2011-07-26 7 views
1

PHP配列の値を表示する簡単なHTMLテーブルフォームを作成しようとしています。表示部分は簡単ですが、ユーザー入力に基づいてこれらの値を選択したり削除したりするようなフォーム機構をコードする方法を忘れてしまいます。私は彼らがオンラインで同様のものの例かもしれないと考えましたが、それまでのところ適切なものは見つかりませんでした。私はHTMLテーブルから1行または複数行を削除できるようにする簡単なコードに興味があります。可能であれば、JavaScriptやjQueryを避けたいと思います。ここで編集可能なHTMLテーブル形式で表示されるPHP配列の例はありますか?ユーザーは行/値を削除できますか?

は、私がこれまで持っているものです。

一言で言えば

HTML/PHP

<form action="options.php" method="post"> 
<table> 
<thead> 
    <tr> 
     <th><input type="checkbox"></th> 
     <th>Domain Name</th> 
    </tr> 
</thead> 
<tfoot> 
    <tr> 
     <th><input type="checkbox"></th> 
     <th>Domain Name</th> 
    </tr> 
</tfoot> 
<tbody> 
    <?php 
     foreach ($my_domains as &$value) { 
      echo '<tr><td><input type="checkbox"></td><td>'.$value['domain'].'</td></tr>'; 
     } 
    ?> 
</tbody> 
</table> 
</form> 

PHPのARRAY

Array ([10] => Array ([domain] => dsdssd.com) [11] => Array ([domain] => google.com) [12] => Array ([domain] => new.com) [13] => Array ([domain] => blah.com)) 
+0

たぶん、あなたはあまりにもアレイの例を与える必要がありますか?私が理解しているように、PHPからJSだけを使って配列からエントリを削除したいのですか? –

+0

良いアイデア。私は上記の例の配列を追加しました... – jnthnclrk

+0

結果、thats結果..すべて私は配列を手動で配列を作成しなければならないとなぜ$値['domain_name']は、それでも、今私に教えてください、今、次は何ですか?これらのチェックボックスを使用して配列エントリを削除しますか?基本的に、複数のドメインを一度に削除できますか? –

答えて

2

..だから。これはあなたが尋ねたものです..とにかく、checkboxexのフォームに、アクティブなドメインなどのオプションを追加します。もし私があなただったら、jQueryとajaxでこれを行います。もっときれいになるでしょう。

例:http://kopli.pri.ee/stackoverflow/6829783.php

NOTE何のメモリがありません。基本的にページをリロードすると、一部のパーツがリセットされます。

EDIT

この1つは、すべての機能を削除しています。実際には、PHPのフォールバックだけでなく、jQueryスクリプトを使用してすべてを選択します。あなたのjQueryを使用する場合は、すべてを選択する場合は、PHPのフォールバックオプションを削除する可能性がありますので、物事を行うその究極の方法は、わからない。

例2:http://kopli.pri.ee/stackoverflow/6829783_v2.php

(これは、以下の更新されたコードである)

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script> 
<?php 
$my_domains[1]['domain'] = 'dsdssd.com'; 
$my_domains[2]['domain'] = 'google.com'; 
$my_domains[3]['domain'] = 'new.com'; 
$my_domains[4]['domain'] = 'blah.com'; 
$my_domains[5]['domain'] = 'kopli.pri.ee'; 
$my_domains[6]['domain'] = 'iyfgaming.com'; 

if ($_POST['trigger']) { 
    $p_delete_all = $_POST['delete_all']; 
    $p_ids = $_POST['ids']; # Get IDs 
    $p_deletes = $_POST['deletes']; # Get deletes 
    if ($p_delete_all) { 
     unset($my_domains); 
    } elseif (is_array($p_ids)) { 
     foreach ($p_ids as $id) { 
      if ($p_deletes[$id]) { 
       unset($my_domains[$id]); 
      } 
     } 
    } 
} 

?> 

<form action="" method="post"> 
<input type="hidden" name="trigger" value="1"> 
<table> 
<thead> 
    <tr> 
     <th><input type="checkbox" name="delete_all" value="1"></th> 
     <th>Domain Name</th> 
    </tr> 
</thead> 
<tfoot> 
    <tr> 
     <th><input type="checkbox" name="delete_all" value="1"></th> 
     <th>Domain Name</th> 
    </tr> 
</tfoot> 
<tbody> 
    <?php 
     if (is_array($my_domains)) { 
      foreach ($my_domains as $array_id => $value) { 
       echo '<input name="ids[]" type="hidden" value="' . $array_id . '">' . "\n"; 
       echo '<tr><td><input name="deletes[' . $array_id . ']" value="1" type="checkbox"></td><td>'. $value['domain'] . '</td></tr>' . "\n\n"; 
      } 
     } else { 
      echo '<tr><td colspan="2">Nothing to display :(</td></tr>'; 
     } 
    ?> 
</tbody> 
</table> 
<br> 
<input type="submit" value="Update"> 
</form> 

<script> 
$('input[name=delete_all]').click(function() { 
    if ($(this).is(':checked')) { 
     $('tbody input[type=checkbox]').each(function() { 
      $(this).attr('checked', true); 
     }); 
     $('input[name=delete_all]').attr('checked', true); 
    } else { 
     $('tbody input[type=checkbox]').each(function() { 
      $(this).attr('checked', false); 
     }); 
     $('input[name=delete_all]').attr('checked', false); 
    } 
}); 
</script> 
+0

ありがとう!私は今これを試してみます... – jnthnclrk

+0

javascriptが有効になっていない場合は、PHPのフォールバックを使用して、すべての機能を削除するようにコードを更新しました。 –

+0

恐ろしい!!!!!!!!! – jnthnclrk

関連する問題