我有这个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库,我相信。
答案 0 :(得分:0)
在您的情况下(注意&amp;作为分隔符):
'name='+name+'&last_name='+last_name
但是,如果您将数据指定为对象,jQuery会为您执行此操作:
data: { name: name, last_name: last_name}
答案 1 :(得分:0)
尝试在doc ready块中绑定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 。