2016-05-10 113 views
0

我使用AJAX POST的PHP響應有問題。AJAX POST的PHP錯誤響應

我的PHP代碼是這一個:

$vadb_dsn = 'odbc:DSN=VerticaDSNunixodbc;Database=DB'; 
$vadb_options = array(PDO::ATTR_AUTOCOMMIT=>FALSE, PDO::ATTR_ERRMODE=>PDO::ERRMODE_EXCEPTION); 
$vadb_user = 'dbadmin'; 
$vadb_pass = 'dbpwd'; 

$user=$_POST['user']; 
$pwd=$_POST['pwd']; 


# Connect to Database 
try { 
    $vadb = new PDO($vadb_dsn, $vadb_user, $vadb_pass, $vadb_options); 
} 
catch (PDOException $e) { 
    die("Couldn't connect to DB"); 
} 

# Query to Database 
$vsql = "SELECT user_name as 'user_name', password as 'password' from schema.table where user_name='".$user."' and password='".$pwd."';"; 

# Prepare Statement and Execute 
$stmt = $vadb->prepare($vsql); 
$stmt->execute(); 

# Fetch Results 
while($row = $stmt->fetch(PDO::FETCH_ASSOC)) { 
    $result = $row['user_name'].";".$row['password']; 
} 

# Close Connection 
$vadb = null; 

# Output the result 
echo $result 

當我執行自檢,以這樣的方式

var url = "example.php"; 
var user= $('#user').val(); 
var pwd= $('#pwd').val(); 

$.ajax({ 
    type: "POST", 
    url: url, 
    data: $("#formpost").serialize(), // serializes the form's elements. 
    success: function(data) 
    { 
     alert(data); // show response from the php script. 
    } 
}); 

我得到的,因爲從PHP文件的響應,而不是查詢結果, PHP文件的代碼itstelf。 換句話說,我的網頁提示一個提示,其中的內容是php文件代碼... 有關如何解決此問題並獲得正確響應的任何想法?

+0

直接調用PHP腳本(本身)是否運行查詢? –

+0

如果您在頁面上獲取php代碼,請在頁面頂部使用<?php。 –

+0

你有沒有試過[這](http://stackoverflow.com/questions/14918462/get-response-from-php-file-using-ajax)選項? –

回答

-1

我解決了服務器版本(CentOS)上重新安裝PHP的,所以在這種情況下,從網址更改爲「/example.php」外殼:

yum install php 

就是這樣。

0

嘗試在PHP文件的頂部添加<?php。看起來你錯過了你粘貼的PHP。

如果你自己獲得php代碼,你只是獲取文件的內容。看起來你錯過了預處理器標籤。

如果還是不行,請嘗試而不是「使用example.php」

+0

<?php標記存在.. – user1903898

+0

嘗試添加一個/之前的example.php使其成爲'/ example.php' – 1N5818

+0

nope,相同的結果... – user1903898