隐藏包含多个设计师产品的订单

时间:2017-01-06 09:10:32

标签: javascript php html forms

我们有许多产品的电子商务购物网站。

我们有很多设计师,每个设计师都是多个产品的拥有者。

一旦我们选择了设计师,我们就会在下拉列表中显示设计师,一旦我们选择订单,我们就可以选择这些设计师的订单,而不是选择相关产品。

基本上我们正在选择所有3个下拉字段并在数据库中提交表单和保存值。

1 即可。如果订单包含只有一个设计师的产品,在我们选择这些产品并提交表单后,如果我们选择相同的设计器,则以前选择的订单将不可见。没关系。 例如:在这里你可以看到我们选择" kidsdial2"作为设计师和订单" 100000142"并提交表格

enter image description here

所以当我们选择" kidsdial2" 下次,我们无法看到订单" 100000142"

enter image description here

2 即可。如果订单包含仅包含多个设计师的产品,则在我们选择这些产品并提交表单后,如果我们选择相同的设计器之前选择的订单仍然可见。但我们想隐藏"秩序"这里也是。这就是问题所在。

例如:此处订购" 100000141"包含多个设计师的产品。所以我们选择了Designer" kidsdial2" &安培;订单" 100000141"和选定的产品并提交表格。

enter image description here

当我们选择" kidsdial2" 下次,我们不希望看到订单" 100000142"。

enter image description here

HTML

<form  action="update_paidstatus.php" id="" onsubmit="return validate(); ">
    <select onchange="getOrderDetail(event);" name="designer_id" id="designer_id">
        <option value="">Select Designer</option>
        <?php
        while($data = $stmt->fetch())
        {
        if($data['type']=="admin")continue;
        ?>
        <option value="<?php echo $data['userID'];?>">
            <?php
            echo $data['name'];
            ?>
        </option>
        <?php } ?>
    </select>

    <div id="ordernumbers">
        <select name="designerorder_id" id="designerorder_id" class="designerorder_id" onchange='getProductDetail(this.value)'>
            <option value="">Select Order</option>
        </select>
    </div>

    <div id="productnumbers" name="dproduct_id" id="dproduct_id">
        <select id="mySelect">
            <option>Select Products</option>
        </select>
    </div>
</form>

脚本

function getOrderDetail(e)
  {
    var designerId=e.target.options[e.target.selectedIndex].value;    
    var url="http://sbdev2.kidsdial.com:81/php/site6/designerpaidstatus.php?designer_id="+designerId+"&opration=2";
       var request = jQuery.ajax( {
                url: url ,
                type: 'POST',                      
            } );

            request.done( function (result)
            {  
              //document.getElementById('ordernumbers').innerHTML =result;
              $(".designerorder_id").html(result);

            } );
            request.fail( function ( error )
            {
                console.dir(error);             
            } );
     }

PHP

require_once '../../app/Mage.php';
Mage::app();
$order = Mage::getModel('sales/order')->getCollection()->addAttributeToFilter('designer_id',array('like' => '%'.$id.'%'));

$htmltext='<select>';  
$htmltext.="<option value=''>Select Order</option>";

foreach ($order as $orderData) 
{

    $data=array();
    $sqlq1="select dproduct_id from order_details where designer_id='".$id."' and designerorder_id='".$orderData->getIncrementId()."'";

    $sqlq=mysqli_query($conVar,$sqlq1);

    while($rdata=mysqli_fetch_assoc($sqlq))

    {
        $data[]=$rdata['dproduct_id'];
    }

    $orderitems=$orderData->getData('dproduct_id');
    $oitem=explode(',',$orderitems);
    $finalValue=$orderData->getIncrementId()."-".$orderitemsarray[$k];
    $result=array_diff($oitem,$data);
    $result1=implode(',',$result);

    if(count($result)>1)

    {  
         $result2=array(); 
         foreach($result as $product) 
           { 
             $_product = Mage::getModel('catalog/product')->load($product); 
             $_productDesignerId = $_product->getDesignerId(); 

                if(trim($_productDesignerId) == trim($id)) 
                     { 
                         $result2[] = trim($product); 
                     } 
           } 

         $result2=implode(',',$result2);

        $htmltext=$htmltext.'<option class="'.$result2.'" name="'.$result2.'" value="'.$orderData->getIncrementId().'">'. $orderData->getIncrementId().'</option>';
    } 

}

    $htmltext=$htmltext."</select>";
    echo $htmltext;exit;   

示例数据库:

enter image description here

编辑 - update_paidstatus.php

$newURL="http://sbdev2.kidsdial.com:81/php/site6/paidstatus.php";

if(isset($_POST) && $_POST!="" && !empty($_POST)){ // checking if form submision is occured or not.

    $sucessFlag=true;
    $productIds=explode(",",$_POST['dproduct_id']);

    $oDate = new DateTime($_POST['dueDate']);
    $sDate = $oDate->format("Y-m-d");   
    if(isset($conVar) && !empty($conVar) && $conVar!="")
    {
       for ($i=0; $i< count($productIds); $i++) {   

         $sqlQueryToUpdate="INSERT INTO order_details ( designer_id,designerorder_id,dproduct_id,dpaid_status,delivery_status,due_date) VALUES('".$_POST['designer_id']."','".$_POST['designerorder_id']."','".$productIds[$i]."','".$_POST['PaidStatus']."','".$_POST['PaidStatus']."','".$sDate."')";

            $sucessFlag=mysqli_query($conVar,$sqlQueryToUpdate);
                if($sucessFlag==TRUE)
                    {
                       echo "UPDATE SUCESSFULLY";
                    }
                    else
                    {
                    echo " not done.";
                    }           
         }
        header('Location: '.$newURL);  
    }
}
 ?>

1 个答案:

答案 0 :(得分:0)

考虑有两个设计师D1和D2。 产品P11和P12属于D1,产品P21和P22属于D2 现在有一个订单O1,它有产品P11和P22 检查内联评论。

    // fetches all order for the particular designer. Try to use = condition rather than like if possible.
// So as per our eg; If Desginer = D1 then  it will return O1
        $order = Mage::getModel('sales/order')->getCollection()->addAttributeToFilter('designer_id',array('like' => '%'.$id.'%')); 

        $htmltext='<select>';  
        $htmltext.="<option value=''>Select Order</option>";

        foreach ($order as $orderData) 
        {

            $data=array();
// Will fetch the product id based on the designer id and desginer order id
// So in our eg: It will return only P1 since P2 is linked to D2
            $sqlq1="select dproduct_id from order_details where designer_id='".$id."' and designerorder_id='".$orderData->getIncrementId()."'";

            $sqlq=mysqli_query($conVar,$sqlq1);

            while($rdata=mysqli_fetch_assoc($sqlq))

            {
                $data[]=$rdata['dproduct_id']; //P1
            }

            $orderitems=$orderData->getData('dproduct_id');
            $oitem=explode(',',$orderitems); // [P1,P2]
            $finalValue=$orderData->getIncrementId()."-".$orderitemsarray[$k];
            $result=array_diff($oitem,$data); //P2
            $result1=implode(',',$result);

            if(count($result)>1)

            {  
                 $result2=array(); 
                 foreach($result as $product) 
                   { 
                     $_product = Mage::getModel('catalog/product')->load($product); 
                     $_productDesignerId = $_product->getDesignerId(); 

                        if(trim($_productDesignerId) == trim($id)) 
                             { 
                                 $result2[] = trim($product); 
                             } 
                   } 

                 $result2=implode(',',$result2);

                $htmltext=$htmltext.'<option class="'.$result2.'" name="'.$result2.'" value="'.$orderData->getIncrementId().'">'. $orderData->getIncrementId().'</option>'; //order data gets appended
            } 

        }

            $htmltext=$htmltext."</select>";
            echo $htmltext;exit;  //order id with P2