我正在尝试从外部PHP文件将JavaScript函数调用为JavaScript脚本。我的代码又大又不同,所以我在这里编写示例代码。
这是我的PHP代码:
<?php function add($a,$b){ $c=$a+$b; return $c; } function mult($a,$b){ $c=$a*$b; return $c; } function divide($a,$b){ $c=$a/$b; return $c; } ?>
这是我的JavaScript代码:
<script> var phpadd= add(1,2); //call the php add function var phpmult= mult(1,2); //call the php mult function var phpdivide= divide(1,2); //call the php divide function </script>
这就是我想要做的。
我 原来的 PHP文件不包含这些数学函数,但是想法是相同的。
如果一些它怎么没有一个妥善的解决办法,那么可能你 请 提出一种替代,但它应该从外部PHP调用值。
是的,您可以使用请求参数中的数据对服务器进行ajax请求,如下所示(非常简单):
请注意,以下代码使用jQuery
jQuery.ajax({ type: "POST", url: 'your_functions_address.php', dataType: 'json', data: {functionname: 'add', arguments: [1, 2]}, success: function (obj, textstatus) { if( !('error' in obj) ) { yourVariable = obj.result; } else { console.log(obj.error); } } });
和your_functions_address.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 'add': if( !is_array($_POST['arguments']) || (count($_POST['arguments']) < 2) ) { $aResult['error'] = 'Error in arguments!'; } else { $aResult['result'] = add(floatval($_POST['arguments'][0]), floatval($_POST['arguments'][1])); } break; default: $aResult['error'] = 'Not found function '.$_POST['functionname'].'!'; break; } } echo json_encode($aResult); ?>