2015-12-02 71 views
-3

我想插入一些數據到mySQL數據庫使用AJAX和jQuery $ .post。我試圖測試功能如下

的index.html:代碼片段(已使用jQuery許多其他功能)

$.post( 
    "updateDatabase.php", 
    { name: "Zara" }, 
    function(data) { 
     //$('#stage').html(data); 
     alert('Success'); 
    } 
); 

updateDatabase.php

<?php 
if($_REQUEST["name"]) { 

    $name = $_REQUEST['name']; 
    echo "Welcome ". $name; 
    echo "<script>alert('Im here')</script>"; 
} 
?> 

什麼我越來越是一個「成功」的警報,沒有別的(這是$ .post的回調函數)。我已經研究了很多,發現了一些相似但不同的問題。但是我的問題沒有解決,因爲對於這個特定問題沒有令人滿意的解決方案。

+0

試試這個安全的方法ajax調用不像導入,da來自updateDatabase.php的ta以成功函數的數據變量的形式傳遞給ajax – madalinivascu

+0

好的。現在我明白了。我想我必須使用數據變量來獲得輸出。 –

+0

你是對的我的回答 – madalinivascu

回答

1

您正在呼應字符串echo "alert('Im here')";。所以,

  1. 它不能被視爲一個JavaScript函數。
  2. 您沒有在成功回調中使用回覆。

你可以做的是:

function(data) { 
    alert('Success: '+data); 
    // outputs: Success: Welcome Zara I'm here 
} 

,並在PHP:

echo "Welcome ". $name . " I'm here"; 
+1

現在我知道我犯的錯誤。對不起。這是我第一個$ .post。 –

+0

@danimvijay不要擔心它發生在這裏,當你是新的。 – Jai

0

更改此

echo "alert('Im here')"; 

echo "Im here";// no need of alert. 

function(data) { 
    alert(data); 
      ^// will alert Im here 
} 

您還可以使用

.done(function() { 
    alert("Success"); 
}) 

最終代碼

$.post("example.php", function() { 
    alert("success"); 
}) 
.done(function() { 
    alert("second success"); 
}) 
0

使用JSON作爲返回數據

$.post( 
    "updateDatabase.php", 
    { name: "Zara" }, 
    function(data) {//data is all the echoed text from the updateDatabase.php in our case a json string 
     alert(data.message); 
    } 
); 

<?php 
if($_REQUEST["name"]) { 

    $name = $_REQUEST['name']; 
    echo json_encode([message =>"Welcome ". $name]) 

} 
?>