可以't使用php脚本插入ajax数据
Can't insert ajax data with php script
我有这个jquery脚本
<script>
$("#btn1").click(function(e) {
e.preventDefault();
var name = $("#id1").val();
var last_name = $("#id2").val();
var dataString = 'name='+name+'&last_name='+last_name;
$.ajax({
type:'POST',
data:dataString,
url:'php/insert.php',
success:function(data) {
alert(data);
}
});
});
</script>
和这个insert.php脚本
<?php
$dbconn = pg_connect("host=localhost dbname=kinoseansy user=postgres password=postgrespass")
or die('Could not connect: ' . pg_last_error());
$name = $_POST['name'];
$last_name = $_POST['last_name'];
$result = pg_query($dbconn, "INSERT INTO contacts(address,phone_number,city,others)
VALUES('+1 123 456 7890', 'John', 'Doe','123');");
var_dump($result);
pg_close($dbconn);
?>
但当我尝试点击id=btn1的按钮时,什么都没有发生,没有错误,Chrome控制台中没有消息,数据库中也没有插入数据。这里怎么了?
编辑#1:这是我的文档的头部分:
<!DOCTYPE html>
<html lang="en">
<head>
<title>Car Repair | Locations</title>
<meta charset="utf-8">
<link rel="stylesheet" type="text/css" media="screen" href="css/reset.css">
<link rel="stylesheet" type="text/css" media="screen" href="css/style.css">
<link href='http://fonts.googleapis.com/css?family=Open+Sans+Condensed:700,300' rel='stylesheet' type='text/css'>
<script type="text/javascript" src="js/jquery-1.7.min.js"></script>
<script type="text/javascript" src="js/jquery.easing.1.3.js"></script>
<script>
$("#btn1").click(function(e) {
e.preventDefault();
var name = $("#id1").val();
var last_name = $("#id2").val();
var dataString = {'name=':name, 'last_name': last_name};
$.ajax({
type:'POST',
data:dataString,
url:'php/insert.php',
success:function(data) {
alert(data);
}
});
});
</script>
所以我相信jquery库是在这里加载的。
在您的情况下(注意&作为分隔符):
'name='+name+'&last_name='+last_name
但是,如果您将数据指定为对象,jQuery会为您做到这一点:
data: { name: name, last_name: last_name}
尝试在文档就绪块中绑定click
事件:
$(function() { // <----doc ready starts
$("#btn1").click(function(e) {
e.preventDefault();
var name = $("#id1").val();
var last_name = $("#id2").val();
var dataString = 'name=' + name + '&last_name=' + last_name;
$.ajax({
type: 'POST',
data: dataString,
url: 'php/insert.php',
success: function(data) {
alert(data);
}
});
});
}); // <-----doc ready ends
在我看来,问题是在DOM准备好之前将事件绑定到元素,因为您已经放置了脚本标记。
因此,您应该使用doc ready
块来包装它。
注:
确保您没有任何重复的id,我的意思是同一个页面中多个元素的id相同所以元素的#btn1
长度应该只有一个1。
相关文章:
- 在Asp.net的TextBox中插入所需文本的java脚本代码
- 在另一个脚本后插入Jquery
- 从外部 js 脚本创建元素并插入到 html 中
- 谷歌应用程序脚本:如何修复循环将一个谷歌文档的段落插入另一个
- 从Javascript中调用PHP脚本,将数据插入mysql数据库
- 使用java脚本在html中插入元素
- 插入<脚本>使用jQuery将其转换为iframe
- 使用jquery html()将脚本插入到新窗口中
- 可以't使用php脚本插入ajax数据
- 如何将PHP脚本插入WordPress和HTML网站
- 如何将脚本插入 HTML 元素以对其内容更改做出反应
- jQuery .on() 脚本插入 DOM 时未绑定
- 谷歌脚本 - 插入具有多个范围的工作表
- 将脚本插入加载的 iframe
- 使用谷歌应用程序脚本插入括号和引号
- jQuery:globalEval在脚本插入时被调用
- DOM脚本插入
- Pagedown markdown脚本插入图像url一次
- 无法使用codeehind将脚本插入到asp页面中
- 黑客<脚本>插入页面顶部