有两个表,product和productcolor.每个产品可以有多种颜色.我想在下拉菜单中获取产品的颜色.但是无法使用以下代码来做到这一点.
<?PHP
$results = $MysqLi->query("SELECT product_code, product_name, product_desc, product_img_name, price FROM products ORDER BY id ASC");
if($results){
$products_item = '<ul class="products">';
//fetch results set as object and output HTML
while($obj = $results->fetch_object())
{
$id = $obj->id;
$results1 = $MysqLi->query("SELECT colornmae FROM productcolor where id=$id");
if($results1){
while($obj1 = $results1->fetch_object())
{
$color[] = $obj1->colorname;
}
}
$products_item .= <<<EOT
<li class="product">
<form method="post" action="cart_update.PHP">
<div class="product-content"><h3>{$obj->product_name}</h3>
<div class="product-thumb"><img src="images/{$obj->product_img_name}"></div>
<div class="product-desc">{$obj->product_desc}</div>
<div class="product-info">
Price {$currency}{$obj->price}
<fieldset>
<label>
<span>Color</span>
<select name="product_color">
foreach ($color as $value) {
<option value="{$value}">{$value}</option>
}
</select>
</label>
<label>
<span>Quantity</span>
<input type="text" size="2" maxlength="2" name="product_qty" value="1" />
</label>
</fieldset>
<input type="hidden" name="product_code" value="{$obj->product_code}" />
<input type="hidden" name="type" value="add" />
<input type="hidden" name="return_url" value="{$current_url}" />
<div align="center"><button type="submit" class="add_to_cart">Add</button></div>
</div></div>
</form>
</li>
EOT;
}
$products_item .= '</ul>';
echo $products_item;
}
?>
我已经寻找解决方案.然后我才知道PHP代码无法用EOT编写. PHP变量可以在EOT中显示.但在这里我想循环到数据库中颜色的值.我尝试了各种组合,但是没有用.以上是我做不成功的尝试之一.
如何在下拉菜单中获取产品的颜色名称,该下拉菜单是从数据库中作为EOT之间的对象获取的?
有人可以帮我吗?
解决方法:
确保你 :
>与EOT在同一行上没有任何其他字符(包括空格字符);声明.
>字符串中没有任何PHP表达式.仅允许变量,并且它们必须具有{$variable}格式.
为了使代码更具可读性,还应该修复缩进!
此代码应工作:
<?PHP
$results = $MysqLi->query("SELECT product_code, product_name, product_desc, product_img_name, price FROM products ORDER BY id ASC");
if($results){
$products_item = '<ul class="products">';
//fetch results set as object and output HTML
while($obj = $results->fetch_object()) {
$id = $obj->id;
$results1 = $MysqLi->query("SELECT colorname FROM productcolor where id=$id");
$color = array();
if($results1){
while($colorvalue = $results1->fetch_object()) {
$color[] = $colorvalue->colorname;
}
}
$products_item .= <<<EOT
<li class="product">
<form method="post" action="cart_update.PHP">
<div class="product-content">
<h3>{$obj->product_name}</h3>
<div class="product-thumb">
<img src="images/{$obj->product_img_name}">
</div>
<div class="product-desc">
{$obj->product_desc}
</div>
<div class="product-info">
Price {$currency}{$obj->price}
<fieldset>
<label>
<span>Color</span>
<select name="product_color">
EOT;
foreach ($color as $value) {
$products_item .= <<<EOT
<option value="{$value}">{$value}</option>
EOT;
}
$products_item .= <<<EOT
</select>
</label>
<label>
<span>Quantity</span>
<input type="text" size="2" maxlength="2" name="product_qty" value="1" />
</label>
</fieldset>
<input type="hidden" name="product_code" value="{$obj->product_code}" />
<input type="hidden" name="type" value="add" />
<input type="hidden" name="return_url" value="{$current_url}" />
<div align="center">
<button type="submit" class="add_to_cart">Add</button>
</div>
</div>
</div>
</form>
</li>
EOT;
}
$products_item .= '</ul>';
echo $products_item;
}
?>
作为将字符串拆分为位的替代方法,可以将表达式放在单独的函数/方法中,并将其输出作为变量包括在内.
此代码也应该起作用:
<?PHP
function print_colors($color) {
$returnstring = "";
foreach ($color as $value) {
$returnstring .= "<option value=\"{$value}\">{$value}</option>";
}
return $returnstring;
}
$results = $MysqLi->query("SELECT product_code, product_name, product_desc, product_img_name, price FROM products ORDER BY id ASC");
if($results){
$products_item = '<ul class="products">';
//fetch results set as object and output HTML
while($obj = $results->fetch_object()) {
$id = $obj->id;
$results1 = $MysqLi->query("SELECT colorname FROM productcolor where id=$id");
$color = array();
if($results1){
while($colorvalue = $results1->fetch_object()) {
$color[] = $colorvalue->colorname;
}
}
$products_item .= <<<EOT
<li class="product">
<form method="post" action="cart_update.PHP">
<div class="product-content">
<h3>{$obj->product_name}</h3>
<div class="product-thumb">
<img src="images/{$obj->product_img_name}">
</div>
<div class="product-desc">
{$obj->product_desc}
</div>
<div class="product-info">
Price {$currency}{$obj->price}
<fieldset>
<label>
<span>Color</span>
<select name="product_color">
{print_colors($color)}
</select>
</label>
<label>
<span>Quantity</span>
<input type="text" size="2" maxlength="2" name="product_qty" value="1" />
</label>
</fieldset>
<input type="hidden" name="product_code" value="{$obj->product_code}" />
<input type="hidden" name="type" value="add" />
<input type="hidden" name="return_url" value="{$current_url}" />
<div align="center">
<button type="submit" class="add_to_cart">Add</button>
</div>
</div>
</div>
</form>
</li>
EOT;
}
$products_item .= '</ul>';
echo $products_item;
}
?>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。