-1

誰かがJQueryを使用してJavascriptからPythonスクリプトを呼び出し、Pythondictである結果を解析する方法の短いコード例を教えてもらえますか?今まで持っていたものを下回っていますが、動作しません。

Pythonコード(script.py):

def pythonFuntion():
dict = {"val1":"this is x", "val2":True}
return json.dumps(dict)

中級PHP(intermediate.php):

<?php
  exec("python script.py", $output);
  echo $output;
?>

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>
4

4 に答える 4

2

PHPは問題ないように見えます。問題はJavaScriptコードにある可能性があります。obj変数は未定義ですobj.val1ではなくdata.val1にアラートを送信する必要があります。

<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(data.val1);
    }
   });
  </script>
于 2013-03-25T09:00:48.993 に答える
2

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は機能します。(私のシステムでテストしただけです)。

于 2013-03-25T09:27:19.947 に答える
1

多分それは何が悪いのか成功関数です、objをdataに変更してください:

success: function(data){
     alert(data.val1);
}
于 2013-03-25T09:01:34.940 に答える
0

PHPで配列を作成することはできませんecho。(お気づきのとおり)「配列」を出力するだけです。配列に格納されている各行を印刷するには、次のようなものが必要です。

exec("python script.py", $output);
echo implode( "\n", $output );

また、コメントで確立されているように、Pythonスクリプトは、PHPに渡したいものを実際に出力して、それexec()を収集できるようにする必要があります。returnPythonからPHPにデータを渡すために使用することはできません。

于 2013-03-25T09:12:17.650 に答える