rohitb Posted August 15, 2013 Share Posted August 15, 2013 im trying to convert a javascript code to php can GURUS help me and tell me am i on right track below are the codes JAVASCRIPT <script language="JavaScript1.2"> function calculatePrices(){ var spotPrice = 1.0 * getValue("spotPrice"); var callStrikePrice = 1.0 * getValue("callStrikePrice"); var callRate = 1.0 * getValue("callRate"); var putStrikePrice = 1.0 * getValue("putStrikePrice"); var putRate = 1.0 * getValue("putRate"); var actualCallRate = Math.ceil(100.0 * ((((callStrikePrice - spotPrice) - (callStrikePrice - (callStrikePrice+putStrikePrice)/2.0))/(callStrikePrice - spotPrice)) + 1) * callRate); var actualPutRate = Math.ceil(100.0 * (1 - ((((callStrikePrice+putStrikePrice)/2.0 - putStrikePrice) - (spotPrice - putStrikePrice))/(spotPrice - putStrikePrice))) * putRate); var buyPercent = Math.ceil(10000.0 * actualCallRate/(actualCallRate + actualPutRate)); var sellPercent = Math.ceil(10000.0 * actualPutRate/(actualCallRate + actualPutRate)); var result = "The chances of Nifty Future going up is " + buyPercent/100.0 + " % and going down is " + sellPercent/100.0 + " %"; if(buyPercent==sellPercent){ result = result + "<br/><h1 style='color:yellow'>TREND IS NEUTRAL</h1>"; }else if(buyPercent>sellPercent){ result = result + "<br/><h1 style='color:green'>TREND IS UP</h1>"; }else{ result = result + "<br/><h1 style='color:red'>TREND IS DOWN</h1>"; } document.getElementById("result").innerHTML = result; } function populateCallPutStrikePrice(){ var spotPrice = 1.0 * getValue("spotPrice"); if(getValue("spotPrice")!=null && getValue("spotPrice")!=""){ document.getElementById("userInput").style.display="block"; }else{ document.getElementById("userInput").style.display="none"; } if(spotPrice%100>=0 && spotPrice%100<40){ setValue("callStrikePrice",Math.floor(spotPrice/100)*100 + 100 + ""); setValue("putStrikePrice",Math.floor(spotPrice/100)*100 - 100 + ""); }else if(spotPrice%100 >=40 && spotPrice%100<=60){ setValue("callStrikePrice",Math.floor(spotPrice/100)*100 + 100 + ""); setValue("putStrikePrice",Math.floor(spotPrice/100)*100 + ""); }else{ setValue("callStrikePrice",Math.floor(spotPrice/100)*100 + 200 + ""); setValue("putStrikePrice",Math.floor(spotPrice/100)*100 + ""); } } function getValue(id){ return document.getElementById(id).value; } function setValue(id,value){ document.getElementById(id).value = value; } </script> MY CONVERSION TO PHP OF THE ABOVE JAVASCRIPT <?php function CalculatePrices() { $spotPrice=1.0* $_POST['spotPrice']; $callStrikePrice=1.0* $_POST['spotPrice']; echo"$callStrikePrice"; $callRate=1.0* $_POST['spotPrice']; $putStrikePrice=1.0* $_POST['spotPrice']; $putRate=1.0* $_POST['spotPrice']; $actualCallRate=ceil(100.0 * ((((callStrikePrice - spotPrice) - (callStrikePrice - (callStrikePrice+putStrikePrice)/2.0))/(callStrikePrice - spotPrice)) + 1) * callRate); $actualPutRate=ceil(100.0 * (1 - ((((callStrikePrice+putStrikePrice)/2.0 - putStrikePrice) - (spotPrice - putStrikePrice))/(spotPrice - putStrikePrice))) * putRate); $buyPercent =ceil(10000.0 * actualCallRate/(actualCallRate + actualPutRate)); $sellPercent = ceil(10000.0 * actualPutRate/(actualCallRate + actualPutRate)); $buyPer=$buyPercent/100.0; $sellPer=$sellPercent/100.0; echo"The chances of Nifty Future going up is $buyPer percent and going down is $sellPer percent"; if(buyPercent==sellPercent){ echo"TREND IS NEUTRAL"; }else if(buyPercent>sellPercent){ echo"<br/><h1 style='color:green'>TREND IS UP</h1>"; }else{ echo"<br/><h1 style='color:red'>TREND IS DOWN</h1>"; } } IM STUCK WITH document.getElementById("result").innerHTML = result; document.getElementById("userInput").style.display="block"; document.getElementById("userInput").style.display="none"; how do i tackle these in php Quote Link to comment Share on other sites More sharing options...
.josh Posted August 15, 2013 Share Posted August 15, 2013 you cannot convert those to php, because those are DOM specific. php does have a DOM class that works similar, if you have a string or html file or xml file to work with, but this isn't really the same as grabbing or altering something from a live DOM on a page. Same thing with your getValue and setValue functions. You're going to have to refactor your code to leave those in javascript. If you absolutely must convert it 100% to php, your only option is to have the full page reload whenever the code is executed, and have it output updated html code each time. Quote Link to comment Share on other sites More sharing options...
Psycho Posted August 15, 2013 Share Posted August 15, 2013 Well, here's my two cents. You would never rely upon JavaScript to do calculations of price because a user can override those calculations. But, it's fine to have something on the client side to provide the user a quick feedback on the price. But, you absolutely should have PHP code that will be used to determine the actual price to be used. So, it makes sense to me that you would have the same logic in PHP. However, your function is still relying upon other POST values to determine the price - which is a bad process and could result in users 'hacking' the data to reduce the price. The only information the form should need to pass is the id of the items in the cart and the quantities. You would then get the price, rates, etc. from server-side data/code. But, the real question is what are you going to do with the price when the PHP page receives it. Do you want to display a page with the order information and a confirmation of the final price? If so, just pass the relevant values to your function and return the calculated price and output that price wherever you want on the page. There is no need to reference element by their ID, since your PHP code will be generating those elements and you can simply include the value as part of that output. I'm also seeing some oddities in your code. For example, you are multiplying all the submitted values by 1? You should be using floatval() instead. Plus, you are using the same POST vaule for multiple variables - that seems to be a waste. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.