Javascript 使用ajax从另一个php调用php
我试图从ajax调用php,所以我在第一页(index.php)上写了以下内容:Javascript 使用ajax从另一个php调用php,javascript,php,ajax,Javascript,Php,Ajax,我试图从ajax调用php,所以我在第一页(index.php)上写了以下内容: 函数有效(id){ var元素=document.getElementById(id); $.ajax({ url:'valid.php', 类型:'POST', 数据: { url:element.children[0]。childNodes[0]。nodeValue }, 成功:功能(msg) { console.log('done1'); } }); } 这是我的第二个(valid.php): cons
函数有效(id){
var元素=document.getElementById(id);
$.ajax({
url:'valid.php',
类型:'POST',
数据:
{
url:element.children[0]。childNodes[0]。nodeValue
},
成功:功能(msg)
{
console.log('done1');
}
});
}
这是我的第二个(valid.php):
console.log('done2');
但是当我调用我的函数时,它似乎不会调用valid.php,即使控制台显示“done1”,“done2”没有出现在任何地方,并且数据库保持不变,比如valid.php就是不运行
我怎样才能解决这个问题?谢谢大家! 因为您使用的是POST,所以需要在valid.php中使用$\u POST而不是$\u GET来检索数据。如果您期望的是
isset($\u GET['url'])
这是一个GET参数,但您的AJAX请求是通过POST发送的。您应该将其更改为isset($\u POST['url'])
关于console.log('done2')
在valid.php上,除非您将其附加到index.php的主体中并对特定脚本求值,否则它不会执行,但它是多余的,因为console.log('done1')
表示valid.php请求的完成
编辑:在你的插入查询中,你有
$\u GET['url']
,应该是$\u POST['url']
谢谢你的回复,我没有看到。我更改了这个,但它仍然是一样的,数据库仍然没有更改。@勾选我对答案所做的编辑,它应该对您有所帮助。
<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>
<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();
}
}
?>