【发布时间】:2012-07-09 17:13:30
【问题描述】:
我正在尝试制作 -
- android WEB 应用程序
- 带电话间隙
- 使用 JqueryMobile 进行布局
我在做什么 -
- 以 ID、姓名和地址为输入的 html 表单
- '使用 ajax 序列化此数据
- 用它制作一个 json 对象
- 应将其发送到名为“connection.php”的文件中
- 在哪里,这些数据被放入数据库(MySql)
其他细节 -
- 我的服务器是 localhost,我用的是 xampp
- 我已经使用 phpmyadmin 创建了数据库和表
问题-
- 我的 json 对象在其中创建的 html 文件未连接到我的 localhost 托管的 php 文件
这是我的完整 html 文件:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<!-- Change this if you want to allow scaling -->
<meta name="viewport" content="width=default-width; user-scalable=no" />
<meta http-equiv="Content-type" content="text/html;charset=utf-8">
<title>Trial app</title>
<link rel="stylesheet" href="thestylesheet.css" type="text/css">
<script type="text/javascript" charset="utf-8" src="javascript1.js"></script>
<script type="text/javascript" charset="utf-8" src="javascript2.js"></script>
<script type="text/javascript" charset="utf-8" src="cordova-1.8.0.js"></script>
<script>
$(document).ready(function () {
$("#btn").click( function() {
alert('hello hello');
$.ajax({
url: "connection.php",
type: "POST",
data: {
id: $('#id').val(),
name: $('#name').val(),
Address: $('#Address').val()
},
datatype: "json",
success: function (status)
{
if (status.success == false)
{
alert("Failure!");
}
else
{
alert("Success!");
}
}
});
});
});
</script>
</head>
<body>
<div data-role="header">
<h1>Heading of the app</h1>
</div><!-- /header -->
<div data-role="content">
<form id="target" method="post">
<label for="id">
<input type="text" id="id" placeholder="ID">
</label>
<label for="name">
<input type="text" id="name" placeholder="Name">
</label>
<label for="Address">
<input type="text" id="Address" placeholder="Address">
</label>
<div id="btn" data-role="button" data-icon="star" data-theme="e">Add record</div>
<!--<input type="submit" value="Add record" data-icon="star" data-theme="e">
-->
</form>
</div>
</body>
</html>
这是我的本地主机托管的“connection.php”
<?php header('Content-type: application/json');
$server = "localhost";
$username = "root";
$password = "";
$database = "jqueryex";
$con = mysql_connect($server, $username, $password);
if($con) { echo "Connected to database!"; }
else { echo "Could not connect!"; }
//or die ("Could not connect: " . mysql_error());
mysql_select_db($database, $con);
/*
CREATE TABLE `sample` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(45) DEFAULT NULL,
`Address` varchar(45) DEFAULT NULL,
PRIMARY KEY (`id`)
)
*/
$id= json_decode($_POST['id']);
$name = json_decode($_POST['name']);
$Address = json_decode($_POST['Address']);
$sql = "INSERT INTO sample (id, name, Address) ";
$sql .= "VALUES ($id, '$name', '$Address')";
if (!mysql_query($sql, $con)) {
die('Error: ' . mysql_error());
} else {
echo "Comment added";
}
mysql_close($con);
?>
我的疑惑:
- 当我在 phpmyadmin 中查看表“样本”时,未在表中创建任何条目
- 很明显,我也没有看到任何成功消息
- 我没有收到任何错误,不是来自 ajax,也不是来自 php 文件。
我怀疑的东西:
- 我应该使用 jsonp 而不是 json 吗?我是新手。
- 我的 php 文件有问题吗?
- 也许我需要在我的 html 文件中包含更多的 javascript 文件?
我认为这是一个非常简单的问题,所以请帮助我!我认为这只是一些概念上的错误,因为我刚刚开始使用 jquery、ajax 和 json。 谢谢。
一些编辑:
我收到以下语法错误:
已连接到数据库!
注意:未定义索引:C:\xampp\htdocs\connection.php 中的 id 在第 28行>
通知:未定义索引:C:\xampp\htdocs\connection.php 中的名称在第 31 行
注意:未定义索引:地址在 C:\xampp\htdocs\connection.php 行 34
错误:您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的 ''', '')' 附近使用正确的语法
所以我将代码更改为
if (isset($_POST['id']))
$id= json_decode($_POST['id']);
if (isset($_POST['name']))
$name = json_decode($_POST['name']);
if (isset($_POST['Address']))
$Address = json_decode($_POST['Address']);
仍然遇到同样的错误
请帮忙!
【问题讨论】:
-
尝试一个完整的URL而不是connection.php,看到你的JS不是从服务器传递的。
-
网址是什么?我的意思是文件“connection.php”由我的本地主机托管。它在我的电脑上一个名为“htdocs”的文件夹中(我使用xampp)。那么网址应该是什么?
-
假设您在同一台计算机上运行 PhoneGap,请尝试 localhost/connection.php 基本上是一个 FQDN
-
已连接数据库!
注意:未定义索引:C:\xampp\htdocs\connection.php中的id 在线27
注意:未定义索引:C:\xampp\htdocs\connection.php 中的名称 行>29
注意:未定义索引:地址在C:\xampp\htdocs\connection.php行 31
错误:你的SQL语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的 ''', '')' 附近使用正确的语法 -
按照我的回答,请在继续之前删除语法错误。
标签: json jquery web-applications cordova