我们有许多产品的电子商务购物网站。
我们有很多设计师,每个设计师都是多个产品的拥有者。
一旦我们选择了设计师,我们就会在下拉列表中显示设计师,一旦我们选择订单,我们就可以选择这些设计师的订单,而不是选择相关产品。
基本上我们正在选择所有3个下拉字段并在数据库中提交表单和保存值。
1 即可。如果订单包含只有一个设计师的产品,在我们选择这些产品并提交表单后,如果我们选择相同的设计器,则以前选择的订单将不可见。没关系。 例如:在这里你可以看到我们选择" kidsdial2"作为设计师和订单" 100000142"并提交表格
所以当我们选择" kidsdial2" 下次,我们无法看到订单" 100000142"
2 即可。如果订单包含仅包含多个设计师的产品,则在我们选择这些产品并提交表单后,如果我们选择相同的设计器之前选择的订单仍然可见。但我们想隐藏"秩序"这里也是。这就是问题所在。
例如:此处订购" 100000141"包含多个设计师的产品。所以我们选择了Designer" kidsdial2" &安培;订单" 100000141"和选定的产品并提交表格。
当我们选择" kidsdial2" 下次,我们不希望看到订单" 100000142"。
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;
示例数据库:
编辑 - 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);
}
}
?>
答案 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