2014-08-27 40 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