Intereting Posts

Вызов функции php в отдельном файле с использованием AJAX

Я пишу конвертер валют и должен использовать jQuery и AJAX для отправки в и из валют и значения для преобразования в файлы PHP, которые возвращают преобразованное значение.

Мое решение основано на: Как я могу вызвать функции PHP с помощью JavaScript? однако, похоже, это не работает.

Код jQuery:

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.1/jquery.min.js"></script> <script> function exchange(from, to, amount){ alert("got to here"); //this alert shows jQuery.ajax({ type: "POST", url: 'exchange_caller.php', dataType: 'json', data: {functionname: 'exchange_rate_convert', arguments:["USD", "EUR", 1]}, //dummy pass values success: function (obj, textstatus){ if( !('error' in obj)){ answer = obj.result; alert(answer); //neither of these alerts show alert('anything'); } else{ console.log(obj.error); alert("got an error"); //this alert doesn't show } } }); alert("passed the block"); //this alert shows return false; //return false so the page doesn't refresh }</script> 

Код в файле php «exchange_caller.php» (настроен как манекен).

 <?php header('Content-Type: application/json'); $aResult = array(); if(!isset($_POST['functionname'])){ $aResult['error'] = 'No function name!'; } if(!isset($_POST['arguments'])){ $aResult['error'] = 'No function arguments'; } if(!isset($aResult['error'])){ switch($_POST['functionname']){ case 'exchange_rate_convert': if(!is_array($_POST['arguments']) || (count($_POST['arguments']) < 3)){ $aResult['error'] = 'Error in arguments!'; } else{ $aResult['result'] = exchange_rate_convert($_POST['arguments'][0], $_POST['arguments'][1], $_POST['arguments'][2]); } break; default: $aResult['error'] = 'Not found function '.$_POST['functionname'].'!'; break; } } echo json_encode($aResult); function exchange_rate_convert($from, $to, $amount){ //function to run //dummy code, just return 2 for now $value = 2; return $value; }?> 

Когда это выполняется, я получаю сообщения об ошибке «добрался сюда» и «передал блок», но ни одно из сообщений, когда я должен вернуть результат.

Любая помощь будет принята с благодарностью.

Спасибо.