Bug dalam pembuatan cms toko online

halo semua nya teman-teman aku lagi buat cms untuk toko online , tapi sepertinya ada bug nih pada saat update product di bagian category. Jadi saat klik update nah category parent dan category child nya tuh harus nya tercentang / checked, tapi yang tercentang hanya category parent saja. mohon koreksinya teman-teman ane udah kesana-kesini belum bisa juga :(

 function hierarchyUpdate($idCheck = 0){
		global $dbh,$id;
		if($idCheck == 0){
			$query_top_level = $dbh->query("SELECT * FROM category WHERE categoryParent = 0 ORDER BY categoryName ASC");
			$queryCategoryMap = $dbh->query("SELECT * FROM category_map WHERE productID = $id");

      $rowCategoryMap = $queryCategoryMap->fetchAll(PDO::FETCH_ASSOC);

      foreach ($rowCategoryMap as $key => $value) {
          $catID[$key]  = $value["categoryID"];
      }

      $catIDCount = count($catID);

			if($query_top_level->rowCount()>0){
				echo "<ul class='parentCat'>";

				while($row = $query_top_level->fetch(PDO::FETCH_OBJ)){
					for($x=0;$x<$catIDCount;$x++){
						$checked = "";
              if($catID[$x] == $row->categoryID){
                  $checked = "checked";
                  break;
              }
          }

          echo "<li>"."<input ".$checked." type='checkbox' name='category[]' value='". $row->categoryID."'>".$row->categoryName."</option>";

					if(child_check($row->categoryID)){
						hierarchy($row->categoryID);
					}

					echo "</li>";

				}
				echo "</ul>";
			}
		}else {
			$query_child = $dbh->query("SELECT * FROM category WHERE categoryParent = $idCheck ORDER BY categoryName ASC");

			$queryCategoryMap = $dbh->query("SELECT * FROM category_map WHERE productID = $id");

      $rowCategoryMap = $queryCategoryMap->fetchAll(PDO::FETCH_ASSOC);

      foreach ($rowCategoryMap as $key => $value) {
          $catIDchild[$key]  = $value["categoryID"];
      }

      $catIDCount = count($catID);

			if($query_child->rowCount()>0){
				echo "<ul class='childCat'>";
				while($row = $query_child->fetch(PDO::FETCH_OBJ)){
					for($x=0;$x<$catIDCount;$x++){
						$checked = "";
		              if($catIDchild[$x] == $row->categoryID){
		                  $checked = "checked";
		                  break;
		              }
          }

         echo "<li> aaa"."<input type='checkbox' name='category[]' value='". $row->categoryID."' ".$checked.">".$row->categoryName."</option>";

					if(child_check($row->categoryID)){
						echo "</li>";
					}else{
						hierarchy($row->categoryID);
					}
				}
				echo "</ul>";
			}
		}
	}
avatar nauvalshidqi
@nauvalshidqi

13 Kontribusi 0 Poin

Diperbarui 6 tahun yang lalu

1 Jawaban:

coba cek bagian ini:



foreach ($rowCategoryMap as $key => $value) {
          $catIDchild[$key]  = $value["categoryID"];
      }

      $catIDCount = count($catID);

			if($query_child->rowCount()>0){
				echo "<ul class='childCat'>";
				while($row = $query_child->fetch(PDO::FETCH_OBJ)){
					for($x=0;$x<$catIDCount;$x++){
						$checked = "";
//Coba echo bagian ini (lihat apakah sudah sesuai)
echo $catIDchild[$x] ;
echo $row->categoryID;
		              if($catIDchild[$x] == $row->categoryID){
		                  $checked = "checked";
		                  break;
		              }
          }
avatar keccikun
@keccikun

364 Kontribusi 196 Poin

Dipost 6 tahun yang lalu

Login untuk ikut Jawaban