<html>
<script type='text/javascript' src='jquery.js'></script>
<script type='text/javascript'>
<?php
// this sets variables sot session for nodeid
$nid = 1;//$_GET["nnid"];
session_start();
$_SESSION['sesnodid']=$nid;
?>
var array;
$(document).ready(function (){
$('#itemsOnPageDiv input:checkbox').click(function(event){
var obj = [];
$('#itemsOnPageDiv input[type=checkbox]:checked').each(function(index, value){
obj.push($(this).attr("value"));
alert($(this).attr("value")+" added to array");
});
array = JSON.stringify(obj);
});
});
$(document).ready(function(){
$("#cl").click(function(){
$.post('buildUserPage.php', { array : array },
function(output){
$('#debug').html(output).show();
});
alert(array);
});
});
</script>
<div id="itemsOnPageDiv">
<?php
include("hawkfunctions.php");
newPageCheckBoxBuider();
$user_page_cell_info = getUserPageCellInfo($nid);
$i = 0;
echo "<script>";
while($i < count($user_page_cell_info)){
echo "
alert('Clicking ".$user_page_cell_info[$i]['tag_id']."');
\$(document).ready(function(){
\$('#".trim($user_page_cell_info[$i]['tag_id'])."').trigger('click');
});";
$i++;
}
echo "</script>";
?>
</div>
<button id="cl">Save</button>
<div id = 'debug'></div>
</html>
わかった。SQL データベースから構築されたチェックボックスのリストがあります。私はphpを使用して、データベースのデータに基づいて正しい「チェックされた」ボックスを取得するjqueryを作成します。次に、このスクリプトで必要なチェックボックスを「クリック」します。「クリック」するたびに、配列にデータが入力されます。この配列には、jquery の「クリックされた」ボックスと、ユーザーがオンまたはオフにしたボックスから必要なデータが含まれます。この配列は、チェックされているボックスの変更に基づいてデータベースを変更するために、別の php スクリプトによって使用されます。
問題は次のとおりです。
正しくチェックされるはずのボックスがチェックされますが。データが入力されるはずの配列が、常に正しく入力されるわけではありません。最も顕著なのは、チェック ボックスの 1 つだけが最初にオンになっている場合、配列が空であることです。ユーザーがチェックを外してから再度チェックすると、これは修正されるようですが、明らかにこれは理想的ではありません。2 つがチェックされている場合、チェックボックスのデータの 1 つが配列に入らないことがあります。これを超える量は問題ないようです。