Javascript 使用JQuery调用python脚本
有人能给出一个简短的代码示例,说明如何使用JQuery从Javascript调用python脚本并解析结果,这是一个python dict吗?低于我现在拥有的,但不起作用 Python代码(script.py): 中间PHP(Intermediate.PHP):Javascript 使用JQuery调用python脚本,javascript,jquery,python,Javascript,Jquery,Python,有人能给出一个简短的代码示例,说明如何使用JQuery从Javascript调用python脚本并解析结果,这是一个python dict吗?低于我现在拥有的,但不起作用 Python代码(script.py): 中间PHP(Intermediate.PHP): Javascript: <script type="text/javascript" src="jquery-1.8.3.js"></script> <script type="text/jav
Javascript:
<script type="text/javascript" src="jquery-1.8.3.js"></script>
<script type="text/javascript">
$.ajax({
url: 'intermediate.php',
type: 'POST',
dataType: "json",
success: function(data){
alert(obj.val1);
}
});
</script>
$.ajax({
url:'intermediate.php',
键入:“POST”,
数据类型:“json”,
成功:功能(数据){
警报(obj.val1);
}
});
您的PHP看起来不错。问题可能出在javascript代码中。您的obj变量未定义。您必须通知data.val1而不是obj.val1
$.ajax({
url:'intermediate.php',
键入:“POST”,
数据类型:“json”,
成功:功能(数据){
警报(data.val1);
}
});
可能是成功函数出了问题,将obj更改为数据:
success: function(data){
alert(data.val1);
}
在PHP中,您不能
echo
数组,它只打印“array”(正如您所注意到的)。要打印存储在数组中的每一行,需要这样的内容:
exec("python script.py", $output);
echo implode( "\n", $output );
此外,如注释中所述,Python脚本必须实际输出您想要传递给PHP的内容,以便
exec()
可以收集它。您不能使用return
将数据从Python传递到PHP。将Python文件更改为:
import json
def pythonFuntion():
dict = {"val1":"this is x", "val2":True};
return json.dumps(dict);
print( pythonFuntion() );
然后,在PHP中;使用以下命令:
<?php
exec("python script.py", $output);
echo $output[0];
?>
您的jQuery也可以工作。(刚刚在我的系统上测试过)。不确定,但是Python函数不需要适当的缩进吗?不工作意味着什么?有错误消息吗?我看不到任何逻辑错误。你确定路径是正确的吗?@MaVe试试打印($output),看看上面写的是什么。(如果你直接评论答案会更好。)。。。这就是问题所在。你需要把它打印出来。不能将Python中的内容“返回”到PHP中。
exec("python script.py", $output);
echo implode( "\n", $output );
import json
def pythonFuntion():
dict = {"val1":"this is x", "val2":True};
return json.dumps(dict);
print( pythonFuntion() );
<?php
exec("python script.py", $output);
echo $output[0];
?>