2012-01-06 73 views
0

我正在使用JQuery和AJAX發佈到PHP文件,該文件最終將解析數據並將其插入到數據庫中。jQuery,AJAX和PHP(發佈)有問題

我有問題顯示,試圖查看我的JavaScript有什麼問題,它不會發布PHP文件。

我知道它沒有發佈,因爲我沒有收到併發送電子郵件,這是PHP文件中的第一個函數。

JS

$(document).ready(function() { 
    var ptitle = $("#name").val(); 
    var pdesc = $("#desc").val(); 
    var pemail = $("#email.").val(); 
    $('#submit').click(function() { 
     sendValue(ptitle, pdesc, pemail); 
    }); 
}); 

function sendValue(ptitle, pdesc, pemail) { 
    $.post("<?=MOLLY.'update.php'?>", { 
     stitle: ptitle, 
     sdesc: pdesc, 
     semail: pemail 
    }, function(data) { 
     // 
    }, "json"); 
} 

PHP

mail($myemail,'test','test'); 

if ($_POST){ 
$title = $_POST['stitle']; 
$email = $_POST['semail']; 
mail($myemail,$email,$title); 

} 
+0

1)你確定' 「<= MOLLY.'update.php'?>」'是給你正確的網址是什麼? - 檢查PHP呈現的HTML源代碼。檢查你是否需要一個前導'/'。 2)'#提交'表單或超鏈接提交按鈕?如果是,則需要取消發生的缺省事件(接受事件對象作爲第一個參數,然後調用event.preventDefault())。 – Matt 2012-01-06 11:36:56

+0

使用Firefox中的firebug來檢查AJAX請求 - 這將是第一個檢查的地方。 – Bruce 2012-01-06 11:38:14

+0

而不是「if($ _POST)」,你應該使用「if(isset($ _ POST ['stitle']))」。 – 2012-01-06 11:38:18

回答

1

你有一個錯字:

$(document).ready(function() { 
    var ptitle = $("#name").val(); 
    var pdesc = $("#desc").val(); 
    var pemail = $("#email.").val(); // <---- I assume you meant "#email". 
    $('#submit').click(function() { 
     sendValue(ptitle, pdesc, pemail); 
    }); 
}); 
0

開始通過檢查你的PHP文件運行時,與像更換內容:

PHP

echo "Im running"; 

然後在你的JS做:

$.post("<?=MOLLY.'update.php'?>", function(data) { 
    console.log(data); 
}, "json"); 

並查看消息是否返回並記錄在控制檯中。 如果是這樣,請通過回顯您發送的值來檢查$ _POST,並回顯您的電子郵件變量以查看它是否正確輸出。

如果這一切工作正常,你需要檢查,如果你的服務器的郵件命令設置正確居然能發送電子郵件,因爲問題是,當一切被消除最有可能的服務器端。

哦,你應該做什麼cillosis說,使用isset並檢查$ _POST超全局中的某些內容,而不僅僅是一個if($_POST),但是因爲在PHP之前運行郵件函數,這可能不是你的主要問題。