Reputation: 145
Okay so I have a for loop that displays books and their associated sales info...I have it displaying correctly..I have a for loop that goes through an array and displays the information. What I would like to do is have the for loop only display information about a hardcover book or a softcover book, if their values are only more that 0; I have tried putting a for loop in the echo statement but it's giving me an error.. I have a feeling it has to do with the way am concatinating the values..anyway here is my for loop
function displayData($array){
// create a form
echo ' <form action="order_summary.php" method="post">';
// for loop to go through data
for($row = 0; $row < sizeof($array);$row++){
echo '<div class="book-details"><img src="images/' .
$array[$row]['isbn'].'.jpg" alt="'.$array[$row]['title'] .'" >'.
'<br/>'.$array[$row]['title'].'<br/>by '.$array[$row]['author'].
'<br/><input type="radio" name="orders['.$array[$row]['title'].
']" value="hardcover" >Hardcover: $'.$array[$row]['hardcover'].
'<br/><input type="radio" name="orders['.$array[$row]['title'].
']" value="softcover" >Softcover: $'.$array[$row]['softcover'].
'<br/><input type="radio" name="orders['.$array[$row]['title'].
']" value="e-book" >E-Book: $'.$array[$row]['e-book']."</div>";
};
echo '<div class = "cart"><input type="submit" value="Add Selected Items to Cart"></div>';
echo '</form>';
}// end of function
I would like to include something like this
if (!$array[$row]['hc-quantity']== 0) {
// display hardcover price
}
else {
go to the next book and repeat check for softcover
};
can you please help me work this out...
Upvotes: 0
Views: 351
Reputation: 350831
You could improve your code by using the foreach
syntax. The if
condition you suggested is close, but the !
operator is actually acting on the array element, not on the equation.
I would also suggest closing the PHP tag to generate the HTML, instead of using echo
. Then use <?= ... ?>
for injecting PHP values inside your HTML. And for the if
conditions you can insert some <?php ... ?>
blocks.
Here is the adapted code (for
loop only):
<?php
// ... other code ...
foreach ($array as $item){
?>
<div class="book-details">
<img src="images/<?=$item['isbn']?>.jpg" alt="<?=$item['title']?>"><br>
<?=$item['title']?><br>
by <?=$item['author']?><br>
<?php
if ($item['hc-quantity'] > 0) {
?>
<input type="radio" name="orders[<?=$item['title']?>]" value="hardcover">
Hardcover: $<?=$item['hardcover']?><br>
<?php
}
if ($item['sc-quantity'] > 0) {
?>
<input type="radio" name="orders[<?=$item['title']?>]" value="softcover">
Softcover: $<?=$item['softcover']?><br>
<?php
}
?>
<input type="radio" name="orders[<?=$item['title']?>]" value="e-book">
E-Book: $<?=$item['e-book']?>
</div>
<?php
}
// ... more code
//
?>
Upvotes: 1