如何通过JavaScript调用PHP函数?
P粉133321839
2023-07-30 18:57:00
[PHP讨论组]
<p>我正在尝试从一个外部的PHP文件中调用一个PHP函数到JavaScript脚本中。我的代码比较复杂,所以我在这里写一个示例代码。</p><p>这是我的PHP代码:</p>
<pre class="lang-php prettyprint-override"><code><?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;
}
?>
</code></pre>
<p>JS代码:</p>
<pre class="brush:php;toolbar:false;"><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></pre>
<p>这就是我想要做的。</p><p>我的原始PHP文件没有包含这些数学函数,但思路是相同的。</p><p>如果没有合适的解决方案,您能否请提供一个替代方案,但它应该从外部的PHP文件中调用值。</p><p><strong></strong></p>
试下这个
是的,您可以使用请求参数向服务器发送带有数据的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); } } });您的_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); ?>