这是计算值的当前公式
<div class="common-box">
<div class="common-box-left">Approx Value </div>
<div class="common-box-right"><input name="idv" type="text" class="text-box"
value="'.(($rows->v_price*3.41)/100) .'" readonly=""/></div>
现在,当我们使用基于价格范围的if语法将其更改为非常基本的计算目的时,它无效
<div class="common-box">
<div class="common-box-left">Approx Value </div>
<div class="common-box-right"><input name="idv" type="text" class="text-box" value="'.($a = $this->prodDet->v_price);
$b=.02889;
$z=.02307;
if ($a > 500000){
$c=$a*$z;
} else {
$c=$a*$b;
}
echo(round($c) . "<br>");.'" readonly=""/>
</div>
有人可以帮助 - 出了什么问题。 这对你来说可能是基本的 - 但我正在学习php - 感谢你的帮助!!
修改 以下是完整的代码
<?php
define( '_JEXEC', 1);
$database = &JFactory::getDBO();
<2 different tables been called>
after that below:-
if(isset($_GET["ncvd"])){
$NewToyVariantDetail=$_GET["ncvd"];
$sql = "SELECT * from toy_newtoy_variants where v_status='1' and v_id='".$NewToyVariantDetail."'";
$database->setQuery($sql);
$rows = $database->loadObject();
$list=' <div class="common-box">
<div class="common-box-left">Approx Value </div>
<div class="common-box-right"><input name="idv" type="text" class="text-box"
value="'.(($rows->v_price*3.41)/100) .'" readonly=""/></div>
die($list);
}
?>
可能会建议!!
答案 0 :(得分:1)
您的代码存在问题:
echo(round($c) . "<br>");
以下是工作:
<?php
$v_price = 500;
echo '
<div class="common-box">
<div class="common-box-left">Approx Value </div>
<div class="common-box-right"><input name="idv" type="text" class="text-box" value="'.($a = $v_price);
$b=.02889;
$z=.02307;
if ($a > 500000){
$c=$a*$z;
} else {
$c=$a*$b;
}
echo round($c).'" readonly=""/>
</div>';
?>
我的建议是分别编写PHP代码(就像你的计算一样),而不是在html输入代码中。
例如:
<?php
$v_price = 500;
$a = $v_price;
$b=.02889;
$z=.02307;
if ($a > 500000){
$c=$a*$z;
} else {
$c=$a*$b;
}
$val = round($c);
?>
<div class="common-box">
<div class="common-box-left">Approx Value </div>
<div class="common-box-right"><input name="idv" type="text" class="text-box" value="<?php echo $val;?>" readonly=""/>
</div>
更新完整代码中的问题:
- <div class="common-box"> is not closed
- <div class="common-box-right"> is missing '; at the end
<?php
define( '_JEXEC', 1);
$database = &JFactory::getDBO();
if(isset($_GET["ncvd"])){
$NewToyVariantDetail=$_GET["ncvd"];
$sql = "SELECT * from toy_newtoy_variants where v_status='1' and v_id='".$NewToyVariantDetail."'";
$database->setQuery($sql);
$rows = $database->loadObject();
$list=' <div class="common-box">
<div class="common-box-left">Approx Value </div>
<div class="common-box-right"><input name="idv" type="text" class="text-box"
value="'.(($rows->v_price*3.41)/100) .'" readonly=""/></div></div>';
echo $list;
}
?>
答案 1 :(得分:0)
试试这个
value = "<?php echo ($rows->v_price*3.41/100) ?>"
答案 2 :(得分:0)
内联PHP对此更有效...虽然,你可能想让一个方法成为类的一部分,这将为你计算这个,所以你没有把这么多的逻辑放到这么小的空间。
<div class="common-box">
<div class="common-box-left">Approx Value</div>
<div class="common-box-right"><input name="idv" type="text" class="text-box" value="<?=round(($this->prodDet->v_price > 500000) ? $this->prodDet->v_price * 0.02307 : $this->prodDet->v_price * 0.02889));?>" readonly=""/></div>
这是您问题的直接解决方法,但实际上有许多问题正在复杂化。我们需要谈论它的风格。
<?php
define('_JEXEC', 1);
$database = &JFactory::getDBO();
if(isset($_GET["ncvd"]))
{
$NewToyVariantDetail=$_GET["ncvd"];
$sql = "SELECT * from toy_newtoy_variants where v_status='1' and v_id='" . $NewToyVariantDetail . "'";
$database->setQuery($sql);
$rows = $database->loadObject();
$list ='
<div class="common-box">
<div class="common-box-left">Approx Value </div>
<div class="common-box-right"><input name="idv" type="text" class="text-box" value="'.(($rows->v_price*3.41)/100) .'"readonly=""/></div>';
die($list);
}
?>
<?php
define('_JEXEC', 1);
$database = &JFactory::getDBO();
if(isset($_GET['ncvd']))
{
$database->setQuery("SELECT * from toy_newtoy_variants where v_status='1' and v_id='{$_GET['ncvd']}'");
$rows = $database->loadObject();
echo '<div class="common-box">';
echo ' <div class="common-box-left">Approx Value</div>';
echo ' <div class="common-box-right"><input name="idv" type="text" class="text-box" value="' . ($rows->v_price * 3.41) / 100 . '"readonly=""/></div>';
echo '</div>';
}
?>
这是更好的,但是,我甚至不能开始告诉你不要过滤输入有多糟糕。 $_GET['ncvd']
是一个滴答作响的定时炸弹。我们需要解决这个问题......
我将猜测数据库中的v_id
是一个int。因此,我们使用内置的过滤器函数来清理输入。
<?php
define('_JEXEC', 1);
$database = &JFactory::getDBO();
if(isset($_GET['ncvd']))
{
$nvcd = filter_input(INPUT_GET, 'ncvd', FILTER_SANITIZE_NUMBER_INT);
$sql = "SELECT * from toy_newtoy_variants where v_status='1' and v_id='{$ncvd}'";
$database->setQuery($sql);
$rows = $database->loadObject();
echo '<div class="common-box">';
echo ' <div class="common-box-left">Approx Value</div>';
echo ' <div class="common-box-right"><input name="idv" type="text" class="text-box" value="' . ($rows->v_price * 3.41) / 100 . '"readonly=""/></div>';
echo '</div>';
}
?>
这是您应该使用的版本。我不明白你使用die()
的原因,所以你可能想要在那里结束代码执行。为此,如果必须,您只需致电exit。