0

Hi All,
i'm getting all the data from database for array format i need to pass that data to second drop down list like (group option value),please any one help me.

This is my php code:

     <?php
    //error_reporting(0);
    $servername = "localhost";
    $username = "root";
    $password = "";
    $db = "essae";
    $data = "";
    $subcategory_id = "";
    $subcategory_name = array();
    $conn = mysqli_connect($servername, $username, $password,$db);
    if ($conn->connect_error) {
        die("Connection failed: " . $conn->connect_error);
    } 
      $category= $_GET["category_id"];  
            $sql = "SELECT es_category.category_id,es_category_description.name FROM es_category INNER JOIN es_category_description ON es_category.category_id=es_category_description.category_id WHERE parent_id='$category'";    
            $result = $conn->query($sql);

            if ($result->num_rows > 1){

                $sql_getrec ="SELECT es_category.category_id AS sub_cat_id,es_category_description.name AS sub_cat_name FROM es_category INNER JOIN es_category_description ON es_category.category_id=es_category_description.category_id WHERE parent_id='$category'";

                $sub_category= $conn->query($sql_getrec);


                if ($sub_category->num_rows > 1){

                    while ($row=mysqli_fetch_array($sub_category)){

                        $subcategory_id = $row['sub_cat_id'];

                        //$subcategory_name['sub_category_name'][] = $row['sub_cat_name']; 

                        $sql_getrec = "SELECT es_product_description.name AS prod_name FROM es_product_to_category LEFT JOIN es_product_description ON es_product_description.product_id=es_product_to_category.product_id LEFT JOIN es_product ON es_product_description.product_id = es_product.product_id WHERE es_product_to_category.category_id = $subcategory_id  AND es_product.status=1";

                        $sub_product=$conn->query($sql_getrec); 

                        while ($prow=mysqli_fetch_array($sub_product)){

                            $subcategory_name['sub_category_name'][$row['sub_cat_name']]['products_name'][] = $prow['prod_name'];


                        }

                    }


                    echo "<pre>";print_r($subcategory_name);            
                } 
            }   
            else {
            $sql_getrec = "SELECT es_product_description.name FROM es_product_to_category LEFT JOIN es_product_description ON es_product_description.product_id=es_product_to_category.product_id LEFT JOIN es_product ON es_product_description.product_id = es_product.product_id WHERE es_product_to_category.category_id='$category' AND es_product.status=1";

                  $result_getrec=$conn->query($sql_getrec);             
                    while ($row=mysqli_fetch_array($result_getrec)){
                    $data .= $row['name'].",";              
            }
            $data = rtrim($data,",");

            }        

            print_r($data);
        ?>

This is my Html code:

<php?
 $decocedData1 = json_decode($str_json_format, TRUE);
         //print_r($decocedData1);die;
         $decode = $decocedData1;
 ?>
<div>
  <select name="category" id="category" /> 
       <option selected ="selected">Select category</option>

       <?php foreach($decode as $key => $value) { ?>

              <option value="<?php echo $value['category_id']; ?>"><?php echo $value['name']; ?></option>
              <?php } ?>
     </select>
</div>
<div><select name="category12" id="category12" />     

      </select>
</div>

this is my j query and ajax method code:

<script type="text/javascript">
    $(document).ready(function(){
        $('#category').change(function(){
        var category_id=$('#category').val();
          $.ajax({
          type: "get",
          url: 'data_product.php?category_id='+category_id,
          success: function(data) {
          var products = data.split(",");
          state_html = '';
          state_html = '<option>Please Select product</option>'
          $.each(products, function (index, productName) {
                 state_html += "<option value='"+productName+"'>"+productName+"</option>";
                });
                $('#category12').html(state_html);
            },
        });
    })
});
</script>
3
  • where is $decode in your php script Commented Apr 26, 2017 at 5:36
  • What about this: stackoverflow.com/questions/17691936/… Commented Apr 26, 2017 at 5:36
  • Hi Mahdi Rafatjah, i refereed this, This one is directly passing to drop down but i need group option drop down method. Commented Apr 26, 2017 at 5:42

3 Answers 3

0

You may use Type Casting in php

Type casting in PHP works much as it does in C: the name of the desired type is written in parentheses before the variable which is to be cast.

<?php
$array = array("name", "age", "mobile", "email");
var_dump($array);
(string)$array;
var_dump($array);
?>
Sign up to request clarification or add additional context in comments.

Comments

0

This is not your final answer but you can try below code and figure out your variable names

 $('#category12').empty();
             $.each(data, function (index) {
                var optgroup = $('<optgroup>');
                optgroup.attr('label',data[index].name);

                 $.each(data[index].children, function (i) {
                    var option = $("<option></option>");
                    option.val(i);
                    option.text(data[index].children[i]);

                    optgroup.append(option);
                 });
                 $("#category12").append(optgroup);

             });

             $("#category12").multiselect('refresh'); 

Comments

0

you can do a jquery each in the result of your ajax

 $.each(products, function(key, value) {   
       $('#category12')
           .append($("<option></option>")
                      .attr("value",value)
                      .text(value)); 
 });

$(function(){
  //sample result, this will be your ajax result....
  var products = ["Candy", "Cotton Candy", "Iced Candy"];
  
  //clear again the select element.
  $('#category12').empty();
  
  $.each(products, function(key, value) {   
       $('#category12')
           .append($("<option></option>")
                      .attr("value",value)
                      .text(value)); 
  });
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<select id="category12"></select>

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.