这是一个简单的年度验证,应该检查年份是否在1900年到当前年份之间。如果年份有效,则应将其显示为输入值。
if(!empty($year) && $year >= 1900 || !empty($year) && $year <= date('Y')){
$yearHolder = 'value="'.$year.'"';
}else{
$yearHolder = 'placeholder="Year"';
}
我遇到的问题是该声明不起作用,并传递任何数字。
答案 0 :(得分:1)
你可以试试这个。
if(!empty($year) && $year >= 1900 && $year <= date('Y')){
$yearHolder = 'value="'.$year.'"';
}else{
$yearHolder = 'placeholder="Year"';
}
答案 1 :(得分:0)
尝试:
if(!empty($year) && $year >= 1900 && $year <= date('Y')){
无需检查$year
是否为空两次,并将它们全部设为AND。
答案 2 :(得分:0)
为确保条件,请单独放置。
if(!empty($year))
{
if ($year >= 1900 && $year <= date('Y'))
{
$yearHolder = 'value="'.$year.'"';
}else{
$yearHolder = 'placeholder="Year"';
}
} else {
echo "Year is empty";
}
答案 3 :(得分:0)
您必须将中间||
OR condition更改为AND条件,以获得您想要的逻辑。现在换句话说你的条件是:
如果
module.exports = function (sails) { return { initialize : function (next) { var scope = this; sails.after(["hook:services:loaded", "hook:orm:loaded"], function () { scope.loadPlugins(next); }); }, loadPlugins : function (next) { var fs = require("fs"); var path = require("path"); fs.readdir("plugins", function (err, list) { var domain = require('domain').create(); domain.on('error', function (err) { // handle the error safely sails.log.error(err); sails.log.error(pluginname); }); for (var i = 0; i < list.length; i++) { var pluginname = list[i]; var plugin = require(__dirname + "/../../plugins/" + pluginname + "/" + pluginname + ".js"); sails.services.pluginservice[pluginname] = plugin; domain.run(function () { if (plugin.init) { plugin.init(function (err) { if (err) { sails.log.error(err); } }); } }); } if (next) { next(); } }); } } }
不为空且<apex:page standardController="Opportunity"> <apex:form > <apex:pageBlock title="Products (Standard Price Book)"> <apex:pageBlockButtons location="top" > <apex:commandButton action="{!URLFOR($Action.OpportunityLineItem.AddProduct, Id)}" value="Add Product" /> <apex:commandButton action="!URLFOR($Action.OpportunityLineItem.EditAllProduct, Id)}" value="Edit All" /> <apex:commandButton action="{!URLFOR($Action.OpportunityLineItem.ChoosePriceBook, Id)}" value="Choose Price Book" /> </apex:pageBlockButtons> <apex:pageBlockTable value="{!Opportunity.OpportunityLineItems}" var="oli"> <apex:column headerValue="Action"> <b><apex:outputLink value="{!URLFOR($Action.OpportunityLineItem.Edit, oli.Id)}">Edit</apex:outputLink></b>|<b><apex:outputLink value=" {!URLFOR($Action.OpportunityLineItem.Delete, oli.Id)}">Del</apex:outputLink></b> </apex:column> <apex:column headerValue="Product"> <apex:outputLink value="{!URLFOR( $Action.Product2.View ,oli.PricebookEntry.Product2Id)}">{!oli.PricebookEntry.Name}</apex:outputLink> </apex:column> <apex:column headerValue="Product Code"> <apex:outputLink value="{!URLFOR( $Action.Product2.View ,oli.PricebookEntry.Product2Id)}">{!oli.ProductCode}</apex:outputLink> </apex:column> <apex:column headerValue="Sales Price Each"> <apex:outputLink value="{!URLFOR( $Action.Product2.View ,oli.PricebookEntry.Product2Id)}">{!oli.Unitprice}</apex:outputLink> </apex:column> <apex:column headerValue="Quantity"> <apex:outputLink value="{!URLFOR( $Action.Product2.View ,oli.PricebookEntry.Product2Id)}">{!oli.Quantity}</apex:outputLink> </apex:column> <apex:column headerValue="TotalPrice"> <apex:outputLink value="{!URLFOR( $Action.Product2.View ,oli.PricebookEntry.Product2Id)}">{!oli.TotalPrice}</apex:outputLink> </apex:column> </apex:pageBlockTable> </apex:pageBlock> </apex:form>
大于1900 或小于2015
但你想要的是:
如果
$year
不为空且$year
大于1900 AND 小于2015
所以你的if语句应该是这样的:
$year
另请注意,函数调用$year
在最后,如果条件中的其他两个部分为TRUE,则仅使其执行。那是因为PHP有short circuit evaluation。
答案 4 :(得分:0)
合并其他建议,你可以尝试这样的事情:
if (!empty($year) && $year >= 1900 && $year <= date('Y')) {
$yearHolder = 'value="' . $year . '"';
} else {
$yearHolder = 'placeholder="Year"';
}
这将删除空值的冗余检查,更正您的||到&amp;&amp;