[英]Call a php from another php using ajax
我試圖從ajax調用php,所以我在第一頁(index.php)上寫了這個:
<script type="text/javascript">
function valid(id) {
var element = document.getElementById(id);
$.ajax({
url: 'valid.php',
type:'POST',
data:
{
url: element.children[0].childNodes[0].nodeValue
},
success: function(msg)
{
console.log('done 1');
}
});
}
</script>
這是我的第二個(valid.php):
<script type="text/javascript">
console.log('done 2');
</script>
<?php
if (isset($_GET['url']))
{
try
{
$bdd = new PDO('mysql:host=host;dbname=dbname;charset=utf8', 'id', 'password');
$bdd->exec("INSERT INTO sometable (url)
VALUES (".$_GET['url'].");");
}
catch (Exception $e)
{
die();
}
}
?>
但是,當我調用函數時,即使控制台顯示“ done 1”,“ done 2”也沒有出現,並且數據庫保持不變,就像valid.php一樣,它似乎也沒有調用valid.php。不運行。
我該如何解決? 謝謝!
由於您使用的是POST,因此需要使用$ _POST而不是$ _GET來檢索數據。
在valid.php中,如果您期望isset($_GET['url'])
這是一個GET參數,但您的AJAX請求是通過POST發送的。 您應該將其更改為isset($_POST['url'])
。
關於console.log('done 2');
在valid.php上,除非將其附加到index.php的正文中並評估該特定腳本,否則它將不會執行,但這是多余的,因為console.log('done 1');
指完成valid.php請求。
編輯:在您的插入查詢上,您有$_GET['url']
,它應該是$_POST['url']
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.