2014-08-27 54 views
0

我试图做标题说的话以下这个例子:调用使用PHP脚本AJAX一个不工作

How can I call PHP functions by JavaScript?

但是我不能让它开始工作。

这里是JavaScript函数:

<script> 
function errorInProyect(err){ 
    if (document.getElementById("projname").value == ""){ 
     document.getElementById("projname_status").innerHTML = "El nombre del proyecto no puede estar vacio"; 
    } 
    else{ 
    jQuery.ajax({ 
     type: "POST", 
     url: 'addproject.php', 
     dataType: 'json', 
     data: {functionname: 'prueba'}, 
     success: function (obj) { 
       document.getElementById("projname_status").innerHTML = "El resultado fue " + obj.result; 
      } 
    }); 
    } 
} 
    </script> 

而且我addproject.php是:

<?php 
    $res = array(); 
    $res['result'] = "soy la prueba"; 
    json_encode($res); 
?> 

,我知道该函数被调用,因为在空字符串的情况下,消息正在打印。我究竟做错了什么?

+0

你力打印什么?你在哪里写这个函数prueba? – 2014-08-27 12:28:51

回答

1

您不打印json_encode的结果。

更改代码addproject.php到:

echo json_encode($res); 
+0

根据我读过的例子$ res应该是结果,这是我在obj.result中得到的结果。如果代码在成功时进入功能,我应该可以看到它。我理解这个例子错了吗?因为在这个例子中,函数名只是简单地用于switch语句,实际调用一个函数...... – aarelovich 2014-08-27 12:33:31

+0

没关系。起初我明白你错了。这是对的!!!谢谢!! – aarelovich 2014-08-27 12:37:42

+0

还有一件事。在我的防守中,链接中的示例在编码命令中没有回显,但...... – aarelovich 2014-08-27 12:38:16

1
<script> 
function errorInProyect(err){ 
    if (document.getElementById("projname").value == ""){ 
     document.getElementById("projname_status").innerHTML = "El nombre del proyecto no puede estar vacio"; 
    } 
    else{ 
     $.post("addproject.php",{'functionname': 'prueba'}, 
       function(data) 
        { 
         document.getElementById("projname_status").innerHTML = "El resultado fue " + data.result; 

        },'json'); 

     } 
} 
    </script> 

和你的PHP页面

<?php 
    $res = array(); 
    $res['result'] = "soy la prueba"; 
    echo json_encode($res); 
?> 
+0

复制并粘贴了代码。它没有工作 – aarelovich 2014-08-27 12:35:51

+0

看到$ .post()部分。它没有被复制和粘贴。作出必要的更改 – 2014-08-27 12:37:06