У меня 4 радио кнопки +
, -
, *
, /
и я планирую сделать, если я выберу +
он добавит результат двух текстовых полей и отобразит их в 3-м текстовом поле, и поэтому, если я выберу -
подписать его будет минус два текстового поля и отобразить его в третьем текстовом поле и так далее. Любая помощь с этим будет оценена. это картина
<html>
<body>
<?php
function add($x,$y){
$add=$x + $y;
return $add;
}
function subtract($x,$y){
$subtract=$x - $y;
return $subtract;
}
function multiply($x,$y){
$multiply=$x * $y;
return $multiply;
}
function divide($x,$y){
$divide=$x / $y;
return $divide;
}
?>
<form action="#" method="post">
Num1:<input name="num1"><br>
<input type='radio' name='express' value='add'>+
<input type='radio' name='express' value='subtract'>-
<input type='radio' name='express' value='multiply'>*
<input type='radio' name='express' value='divide'>/
<br>
Num2:<input name="num2">
Result<input value='<?php
?>'>
<input type="submit" name="submit">
</form>
<?php
if(isset($_POST['submit'])){
$x=$_POST['num1'];
$y=$_POST['num2'];
$z=$_POST['express'];
if($z == 'add'){
echo add($x,$y);
}
else if($z=='subtract'){
echo subtract($x,$y);
}
else if($z=='multiply'){
echo multiply($x,$y);
}
else{
echo divide($x,$y);
}
}
?>
</body>
</html>
<html>
<body>
<?php
$Result = '';
if(isset($_POST['submit'])){
$num1 = $_POST['num1'];
$num2 = $_POST['num2'];
$express = $_POST['express'];
switch ($express) {
case 'add':
$Result = $num1 + $num2;
break;
case 'subtract':
$Result = $num1 - $num2;
break;
case 'multiply':
$Result = $num1 * $num2;
break;
case 'divide':
if(0 != $num2 ){
$Result = $num1 / $num2;
}
break;
default:
break;
}
}
?>
<form action="#" method="post">
Num1:<input name="num1"><br>
<input type='radio' name='express' value='add'>+
<input type='radio' name='express' value='subtract'>-
<input type='radio' name='express' value='multiply'>*
<input type='radio' name='express' value='divide'>/
<br>
Num2:<input name="num2">
Result<input value='<?php echo $Result;?>'>
<input type="submit" name="submit">
</form>
</body>
</html>
Я предлагаю вам достичь этого с помощью JavaScript и отделить код PHP от кода HTML.
Вы можете сделать это так:
<?php
function add($x,$y){
$add=$x + $y;
return $add;
}
function subtract($x,$y){
$subtract=$x - $y;
return $subtract;
}
function multiply($x,$y){
$multiply=$x * $y;
return $multiply;
}
function divide($x,$y){
$divide=$x / $y;
return $divide;
}
if(isset($_POST['submit'])){
$x=$_POST['num1'];
$y=$_POST['num2'];
$z=$_POST['express'];
if($z == 'add'){
$result=add($x,$y);
}
else if($z=='subtract'){
$result=subtract($x,$y);
}
else if($z=='multiply'){
$result=multiply($x,$y);
}
else{
$result=divide($x,$y);
}
}
?>
<form action="#" method="post">
Num1:<input name="num1"><br>
<input type='radio' name='express' value='add'>+
<input type='radio' name='express' value='subtract'>-
<input type='radio' name='express' value='multiply'>*
<input type='radio' name='express' value='divide'>/
<br>
Num2:<input name="num2">
Result<input value='<?php if(isset($result)){echo $result;} ?>'>
<input type="submit" name="submit">
</form>
</body>
</html>
Если у вас есть какие-либо вопросы, пожалуйста, спросите …
Вот версия jQuery. Я уверен, что кто-то более опытный, чем я, в jQuery может сделать более хитрую версию:
Демо-версия:
http://jsfiddle.net/pn1v1az7/4/
JQuery:
function CalculateVals(Obj)
{
// Set default value as 0
var Result = 0;
// Get the value of the checked radio box
var UseOpr = $("input[name='express']:checked").val();
// Get the value of input num1
var n1 = $("input[name='num1']").val();
// Get the value of input num2
var n2 = $("input[name='num2']").val();
// See if the value for one is numeric, if not make it 0
var Num1 = (!isNaN(n1))? n1:0;
// Same as above
var Num2 = (!isNaN(n2))? n2:0;
// Loop through to find the operator being used
switch(UseOpr) {
case('+'):
// Using the plus like "+Num1" converts string to number, just in case...
Result = +Num1 + +Num2;
break;
case('-'):
Result = +Num1 - +Num2;
break;
case('*'):
Result = +Num1 * +Num2;
break;
case('/'):
Result = +Num1 / +Num2;
}
// Insert the mathematical result into box 3
$("#result").val(Result);
}
// If the form changes
$("form").change(function() {
// Run the above calculation function by passing the form as an argument
CalculateVals($(this));
});
Форма:
<form action="#">
Num1:<input name="num1"><br>
<input type='radio' name='express' value='+' />+
<input type='radio' name='express' value='-' />-
<input type='radio' name='express' value='*' />*
<input type='radio' name='express' value='/' />/
<br>
Num2:<input name="num2" />
Result<input id="result" name="result" value="0">
</form>