PHPの送信で使用していた多次元配列のチェックボックスがあります。現在、ajax を使用するようにコードを再構築しています。
<li class="formVariationParent">
<input checked="" name="variationParent[]" autocomplete="off" value="3" type="checkbox">colors
<ul>
<li class="formVariationChild">
<input checked="" name="variationChild[edit_var_val][3][4]" autocomplete="off" value="1" type="checkbox">red</li>
</ul>
<ul>
<li class="formVariationChild">
<input checked="" name="variationChild[edit_var_val][3][5]" autocomplete="off" value="1" type="checkbox">green
</li>
</ul>
<ul>
<li class="formVariationChild">
<input checked="" name="variationChild[edit_var_val][3][6]" autocomplete="off" value="1" type="checkbox">blue
</li>
</ul>
そして、これはそれがどのように生成されるかです:
<fieldset>
<a class="btn btn-new btn-primary" onclick="apfGenerateVariation(<?php echo $current_post ?>,<?php echo $get_admin_blog ?>,data);" style="cursor: pointer">
<b><i class="icofont-star"></i></b>
</a>
<ul class="formVariations" id="formVariationsID"><li>
<?php
$parentArray = array();
foreach ($parentVariations as $variation) {
$parentArray[] = $variation->term_id;
}
foreach($variationCategories as $category) {
//var_dump($category);
//echo ;
// check if this variation is already checked
if (in_array($category->term_id, $parentArray)) {
if ($category->parent == 0) {
echo "</li><li class='formVariationParent'><input type='checkbox' checked name='variationParent[]' autocomplete='off' value='". $category->term_id ."'>" . $category->name . "";
} else {
echo "<ul><li class='formVariationChild'><input type='checkbox' checked name='variationChild[edit_var_val][". $category->parent ."][". $category->term_id ."]' autocomplete='off' value='1'>" . $category->name . "</li></ul>";
}
} else {
if ($category->parent == 0) {
echo "</li><li class='formVariationParent'><input type='checkbox' name='variationParent[]' autocomplete='off' value='". $category->term_id ."'>" . $category->name . "";
} else {
echo "<ul><li class='formVariationChild'><input type='checkbox' name='variationChild[edit_var_val][". $category->parent ."][". $category->term_id ."]' autocomplete='off' value='1'>" . $category->name . "</li></ul>";
}
}
}
?>
</ul>
</fieldset>
variationChild
これをjQueryで選択し、送信されたかのように変数に保存したいと思いますdata
。
入力名の 2 番目の括弧はparentID
と 3 番目childID
です。私はphpにthouse変数を持っているので、この入力を必要に応じて再構築できますが、チェックdata
すると次のようになります。
array(1) {
["edit_var_val"]=> array(2) {
[3]=> array(3) {
[6]=> string(1) "1"
[5]=> string(1) "1"
[4]=> string(1) "1"
}
[12]=> array(3) {
[13]=> string(1) "1"
[14]=> string(1) "1"
[15]=> string(1) "1"
}
}
}
ここで、最初の配列はこの入力でparentID 3
、2 番目はこのフォームの続き、otherParentID
です。
これは私が使用しようとしているjQueryです。
var data = { 'edit_var_val[]' : []};
jQuery(".formVariationChild input:checked").each(function() {
data['edit_var_val[]'].push(jQuery(this).attr('name'));
});
私はjQuery.map()
と.get()
関数を使用していますが、これは別のケースだと思います。
では、チェックされた入力を取得し、この配列として変数に保存する方法は?