我正在尝试使用 PhoneGap 为现有的 PHP Web 应用程序构建 Android 应用程序。我有用于逻辑的 PHP 文件和用于呈现 UI 的 HTML 文件。这些文件放置在我系统中的 Webserver (Wampserver) 中。现在我已经看到了一些来源,它们说 -> 对来自 phonegap 项目的 web 服务器中的 PHP 文件进行 Ajax 调用。基于此,我创建了一个 index.html 文件,该文件对目标 txt.php 文件进行了 Ajax 调用,并尝试在 Android Virtual Device Manager 上运行。我看到 index.html 被加载到 AVD 上,我在 textarea 中给出了一些输入并单击了“保存消息”按钮。但我在 AVD 上没有看到任何回应。谁能指导我如何放置所有这些 HTML 文件、php 文件以及如何进行 ajax 调用。我希望这个问题能帮助很多像我这样的初学者。
截至目前,以下代码被命名为 index.html 并放置在 Phonegap 项目的 assets/www/index.html 中。我正在使用加载 index.html 页面
super.loadUrl("file:///android_asset/www/index.html");
Index.html 页面看起来像这样..
<html>
<head>
<script language=javascript>
function chk_length(myform)
{
maxLen=767;
if(myform.txt.value.length>=maxLen)
{
alert('You Reached max Length in text area');
myform.txt.value=myform.txt.value.substring(0,maxLen);
}
else
{
myform.num.value=maxLen-myform.txt.value.length;
}
}
</script>
<script>
function myCall() {
$.ajax({
url: "localhost:8080/yours/txt.php",
type: "POST",
dataType: "html"
});
}
</script>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
</head>
<body bgcolor="green">
<form name="myform" method="POST">
<p style="align=:center"> <textarea rows="10" cols="30" name="txt" id="txt" onclick=chk_length(this.form); onkeypress=chk_length(this.form); ></textarea></p>
<input style="background-color:Yellow" size="4" name="num"> <i style="color:yellow"> Characters left</i><br>
<input type="submit" value="Save Message" id="Save" name="button" onclick="myCall()" onmouseover=chk_length(this.form);>
<br>
</form>
</body>
</html>
并且放置在我系统的网络服务器(Wampserver)位置的 txt.php 页面看起来像这样
<html>
<body>
<?php
$txt=$_POST['txt'];
$dt=date("y/m/d");
$button=$_POST['button'];
echo "$txt";
include("pg2.php");
?>
<p style="color:orange">* Max 767 characters only *</p>
<?php
mysql_connect('localhost','root','');
mysql_query("create database mydb");
mysql_select_db('mydb');
$querys="create table mydb.events(edate Date,event varchar(767), UNIQUE(event))";
mysql_query($querys);
mysql_query('create table mydb.like(edate Date,likes varchar(767),UNIQUE(likes))');
if($button=="Save Message")
{
if($txt!="")
{
$quer="insert into mydb.events(edate,event) values('$dt','$txt')";
$quer=str_replace("\r\n"," ",$quer);
if(mysql_query($quer))
{
$file=fopen('./backup.txt','a');
fputs($file,$quer."; \r\n");
fclose($file);
}
$num=mysql_affected_rows();
//echo "$num rows affected";
}
$query="select * from mydb.events";
$result=mysql_query($query);
?>
<table>
<?php
while($row=mysql_fetch_row($result))
{
?>
<tr><td><p style="color:yellow"><?php print("$row[0]"); echo ":"; ?></p></td><td><p style="color:yellow"><?php print("$row[1]"); echo "<br>------------------------------<br>"; ?></p></td></tr>
<?php
}
?>
</table>
<?php
}
if($button=="Like it")
{
if($txt!="")
{
$quer1="insert into mydb.like(edate,likes) values('$dt','$txt')";
$quer1=str_replace("\r\n"," ",$quer1);
if(mysql_query($quer1))
{
$file=fopen('./backup.txt','a');
fputs($file,$quer1."; \r\n");
fclose($file);
}
$num=mysql_affected_rows();
}
$query2="select * from mydb.like";
$results=mysql_query($query2);
?>
<table>
<?php
while($rows=mysql_fetch_row($results))
{
?>
<tr><td><p style="color:yellow"><?php print($rows[0]); echo ":"; ?></p></td><td><p style="color:yellow"><?php print("$rows[1]"); echo "<br>------------------------------ <br>"; ?></p></td></tr>
<?php
}
?>
</table>
<?php
}
?>
</body>
</html>