<?php
Error_Reporting(E_ALL & ~E_NOTICE);// Задаем, какие ошибки PHP попадут в отчет. Ошибки уровня E_NOTICE не показываются
if (($_GET["do"] == "act") && ($_GET["o"] != "0")){//&& ($_GET["n1"] != "")&& ($_GET["n2"] != "")) {
echo $_GET["n1"];
/*$action= New $_GET["o"];
$operands[0]=$_GET["n1"];
$operands[1]=$_GET["n2"];
function calc($action, $operands) { // фунция вычисления
return $action->Evaluate($operands);
}
echo calc($action, $operands);
if (isset($_SERVER['HTTP_REFERER']))//кнопка назад; $_SERVER-глобальный хэш-массив;
//HTTP_REFERER- индекс ячейки,где хранится URL предыдущей страницы
{
echo '</br><a style="margin-right:20px;"
href="'.$_SERVER['HTTP_REFERER'].'">
<<< Назад</a>';
}*/
exit(0); // выход
}
?>
</form>
</form>
<h4>Найдены модули:</h4>
<ul><!-- Выводим список подключаемых классов -->
<?php
foreach ($optionsAr as $key => $value) //
echo "<li>" . $value . "</li>";
?>
</ul>
<form action=" <?php echo $_SERVER['PHP_SELF']; ?>">
<!-- Атрибут action содержит адрес URL сценария, который должен быть вызван для обработки сценария.
$_SERVER['PHP_SELF'] - Имя файла скрипта, который сейчас выполняется, относительно корня документов -->
<select id="operation" name="o">
<option value="0">Выберите операцию</option>
<?php
foreach ($optionsAr as $key1 => $value1) {
foreach ($kol_ar as $key => $value) {
if ($value1==$key)
echo "<option value=\"" . $value . "\">" . $key1 . "</option>";
} }
// Вывод option с загруженными операциями
?>
</select><br/>
<!--<input name="n1"> <!--Аргументы -->
<!--<input name="n2"><br/> -->
<script>
$(document).ready(function () {
$('#operation').change(function () {//событие -выбор из списка
var nom_op = $(this).val();
$.get(//get-запрос
'in.php',//url-адрес, по которому будет отправлен запрос
{nom_op: nom_op},//передаем данные
//function (result) {}
onAjaxSuccess
);
function onAjaxSuccess(data)
{
// Здесь мы получаем данные, отправленные сервером и выводим их на экран.
if (data ==0)
alert ("Выбирете операцию")
else
//$('<input name="n3">').appendTo("body")
for (i=1; i<=data; i++)
$('<input name="n'+i+'">').appendTo("body")
//<input name="n1">
};
});
}
)
</script>
<input type="hidden" name="do" value="act"><br/><br/>
<!--hidden - передает информацию на сервер, не отображая на странице -->
<!-- submit - кнопка для отправки данных на сервер -->
<input type="submit" value="Вычислить"> <input type="reset" value="Очистить значения">
</form>
</body>
Пример файлика с операцией
<?php
/**
* Description of Divide
*
*
*/
include_once 'IAction.php';
class Divide implements IAction {
private $totaloperands = 3;
function __construct() {
}
public function GetNumbOfArgsInteger() {
return $this->totaloperands;
}
public function GetActionString() {
return "/";
}
public function Evaluate($args) {
if (!is_array($args))
throw new InvalidArgumentException("Arrray not provided in argument!");
if (count($args) != 2)//if (count($args) != $this->totaloperands)
throw new InvalidArgumentException("Wrong number of arguments for this action!");
return $args[0] / $args[1];
}
}
?>
и php для ajax
<?php
$nom_op = ($_GET['nom_op']);
echo $nom_op ;
?>