1
<script language="javascript" type="text/javascript">

function moveNumbers(num) { 
var txt=document.getElementById("result").value; 
txt=txt + num; 
document.getElementById("result").value=txt; 
} 
</script>

<textarea id="result" name="image_id" rows="8" cols="11" readonly>

</textarea>
<tr>

<?php
$path = "photos/";
$dir_handle = @opendir($path) or die("Unable to open folder");
echo "<table height='500px'width='800px'align='center'border='1'>";
echo "<tr>";
while (false !== ($file = readdir($dir_handle))) {

if($file == "index.php")
continue;
if($file == ".")
continue;
if($file == "..")
continue;
{
echo ($x % 6 == 0) ? "</tr><tr>" : "";
echo "<td><input type='checkbox' name='add' value='$file'             
onclick='moveNumbers(this.value)'>
<img src='photos/$file'alt='$file' style='height:auto;width:50%;'alt='$file'>
<br>
$file
</td>";
$x++;
}
}
echo "</tr>";
echo "</table>";
closedir($dir_handle);
 ?>

こんにちは、PHP は画像ファイルを検索し、横にチェック ボックスを付けて表示します。テキストエリアへのチェックボックスの入力に問題があります。チェックを入れるとテキストが追加され、チェックを外すと同じテキストが再度追加されます。私は次のことをしようとしています: チェック済み -> テキストを追加、同じチェックボックスをオフ -> テキストを削除。何か案は?

4

2 に答える 2

1

事前に知られていないテキストを任意に追加して後で削除する場合は、追加されたアイテムのリストを保持して毎回結果を再生成するか、検索/置換操作を実行して削除する必要がありますそれ。リストを維持する方が簡単だと思います:

var itemsAdded = Array();

function moveNumbers(text) { 
   var i = itemsAdded.indexOf(text)
   if ( i >= 0) { 
       itemsAdded.splice(i,1); 
   } else {
       itemsAdded.push(text);
   }
   document.getElementById("result").value=itemsAdded.join(" "); //if you want each on a separate line, use "\n" instead of " "
} 
于 2013-06-26T02:44:11.407 に答える
0

なぜ誰かがこれをやりたいのかを考えた後、動的に生成されたチェックボックスのリストをユーザーに提示し、サーバー側でどのボックスがチェックされたかを判断しようとしている可能性があることに気づきました。

そのような作業を行っている場合は、リストを PHP 配列として受け取ると便利な場合があります。これを取得するには、動的に生成されたチェックボックスの name 属性を変更して、次の[] コードを使用してテストしました:

    <script>
        $(function() {
            for(i=0;i<10;i++) {
                $("form").append("<input type='checkbox' name='add[]' value='img_id" + i + "'>Checkbox " + i + "</input><br/>") 
            }
        });
    </script>
    <form id='selection'  action='info.php' method='POST'>
        <input type="submit" /><br />
    </form>

ボックス 0、4、6 ~ 8 をチェックして [送信] をクリックし $_POSTた後、info.php スクリプトには次の値が含まれていましたprint_r($_POST);(

Array
(
    [add] => Array
        (
            [0] => img_id0
            [1] => img_id4
            [2] => img_id6
            [3] => img_id7
            [4] => img_id8
        )
) 
于 2013-06-26T19:51:19.020 に答える