php - 使用 phonegap 提交带有数据和图像的表单

标签 php jquery mysql ajax cordova

我正在使用 phonegap、html、ajax、jquery、mysql 和 php。

在我的 Phonagep 应用程序中,我有包含用户名、密码、用户照片的表单。

我想从 html 页面提交此表单。让我们说 register.html

表单数据应该发送到上传到我的服务器上名为服务的文件夹中的 php 页面,假设路径是“http://www.example.com/services/register.php”。

此页面应处理 mysql 插入过程到也在同一服务器上上传的数据库。

在此服务器上,我还有一个名为 images 的文件夹,用户图像应上传到其中,并且其完整的浴室应插入 mysql 数据库中。

我尝试使用ajax 将用户名和密码发布到此页面并成功插入数据。但是我在使用 serialize() 时遇到数据问题。

还有我不能使用ajax上传图片吗?

我使用了这段代码..我在没有发送图像路径的情况下得到了用户名和密码的响应,但是在发送图像路径时没有任何反应

<html>
<head>
    <title>Basic Upload</title>
    <script type="text/javascript" charset="utf-8" src="cordova.js"></script>
    <script type='text/javascript' src='http://code.jquery.com/jquery-latest.pack.js'></script>
    <script type="text/javascript" charset="utf-8">


function sub(e){

var ft = new FileTransfer();   
var options = new FileUploadOptions();
options.fileKey="myImg";
options.fileName=$('#myImg').val();
options.mimeType="image/jpeg";  
options.mimeType="image/png"; 
options.chunkedMode = false;
var PATH = options.fileName;

var form_data= new Object();
form_data['user_name']= 'User';
form_data['password']= '1234';
form_data['user_image_path']= PATH;

var url = "http://localhost/stacktest/register.php"; 
$.getJSON(""+url+"?callback=?"+"&form_data="+JSON.stringify(form_data),
    function (response) {
        try {
            // Get Your Response
            alert(response);
        }
        catch(ex) {
            console.log(ex);
        }
   }
);

}
</script>
</head>
<body>

<form method="post" enctype="multipart/form-data" id="registerForm" onsubmit="sub(this.value);">

    <input type="file" name="myImg" id="myImg" />

    <input type="submit" value="Upload" name="submitButton" id="submitButton" />


</form>
</body>
</html>

最佳答案

您应该使用带有 Json 的 PHP Webservice 来执行以下任务

像这样访问 Web 服务:-

<script src="http://code.jquery.com/jquery-1.10.2.min.js"></script>
<script>  
var PATH = 'Image Path';
var form_data= new Object();
form_data['user_name']= 'User';
form_data['password']= '1234';
form_data['user_image_path']= PATH;

var url = "http://localhost/stacktest/register.php";
$.getJSON(""+url+"?callback=?"+"&form_data="+JSON.stringify(form_data),
    function (response) {
        try {
            // Get Your Response
            alert(response);
        }
        catch(ex) {
            console.log(ex);
        }
   }
);
</script> 

像这样创建 PHP Web 服务(register.php):-

<?php
$form_data = json_decode(stripslashes($_GET["form_data"]));
$user_name = $form_data->user_name;
$password = $form_data->password;
$user_image_path = $form_data->user_image_path;

//Perform Your Task like Insert into Database etc

$res= 'Your Response which you want to return'; 
echo $_GET["callback"].'('.json_encode($res).')';

关于php - 使用 phonegap 提交带有数据和图像的表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19634967/

相关文章:

jquery - 如何在 jQuery 中的某个滚动位置或元素可见时对 css 'top' 进行动画处理?

javascript - 单击下拉列表项时不显示 Jquery 警报

python - 数据库设计,添加额外的列与使用函数转换现有列

php - 如何替换mysql行中的斜杠 "/"

PHPExcel GetCalculatedValue() 返回错误值

php - 在表中显示 MySQL 数据以及数据子集

php - 如何构建 PHP 依赖注入(inject)容器

jquery - 创建 jQuery 插件时, `this` 应该始终是任何回调中的 native DOM 元素吗?

php - 避免两个用户同时发帖时ID混淆?

php - 如何更改 Laravel 的默认广播授权中间件