簡體   English   中英

使用ajax從另一個php調用一個php

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM