将数据从PhoneGap应用程序发布到服务器

时间:2014-03-13 05:24:17

标签: javascript cordova

我是电话差距的新手。我正在开发一个应用程序,我正在注册页面。我写下面的代码用于将表单数据提交给服务器。它工作得很好。 但我的问题是在提交表格后重定向到URL我在“行动”中给出了什么。

现在我想在没有重定向到URL的情况下成功向服务器提交数据后显示警报。我如何实现这一目标?

<script>
function validateUserName(regform)
{
    var u = document.forms["regform"]["usr"].value
    var uLength = u.length;
    var illegalChars = /\W/; // allow letters, numbers, and underscores
    if (u == null || u == "")
     {
       alert("You left Username field empty");
       return false;
     }
    else if (uLength <4 || uLength > 11)
     {
       alert("The Username must be between 4 and 11 characters");
       return false;
     }
    else if (illegalChars.test(u)) 
     {
       alert("The username contains illegal characters");
       return false;
     }
    else
     {
        return true;
     }
}

function validatePassword(regform)
 {
   var p = document.forms["regform"]["pass"].value
   var cP = document.forms["regform"]["cop"].value
   var pLength = p.length;
    if (p == null || p == "")
     {
      alert("You left the password field empty");
      return false;
     }
  else if (pLength < 6 || pLength > 20)
   {
     alert("Your password must be between 6 and 20 characters in length");
     return false;
   }
  else if (p != cP)
  {
    alert("Th passwords do not match!");
    return false;
  }
 else
  {
    return true;
  }
}

function validateMobileNumber(regform)
  {
    var f = document.forms["regform"]["mob"].value;
    var mLength = f.length;

    if(mLength < 10)
   {
     alert("Please Enter A Valid Mobile Number");
     return false;
   }
    else 
   {
    return true;
   }
}

function validateForm() {
    if(validateUserName() && validatePassword() && validateMobileNumber())
    return true;
else 
    return false;
}

</script>
</head>
<body>
<h1>Registration</h1>
<form name="regform" onsubmit="validateForm()" action="URL" method="post">
<table>
<tr>
    <td><label>Username:</label></td>
    <td><input type="text" name="usr"/></td>
</tr>
<tr>
    <td><label>Password:</label></td>
    <td><input type="password" name="pass"/></td>
</tr>
<tr>
    <td><label>Confirm Password:</label></td>
    <td><input type="password" name="cop"/></td>
</tr>
<tr>
    <td><label>Mobile Number:</label></td>
    <td><input type="text" name="mob"/></td>
</tr>
<tr>
<td></td>
    <td><input  type="submit" onclick = "return validateForm();" value="Register" class="row1" method="post"/>
    </td>
    </tr>
    </table>
</form>
 </body>
 </html>

1 个答案:

答案 0 :(得分:0)

我建议你使用ajax。添加带有id的每个输入字段。

的javascript

formData = {
    // all your parameters here
    usr: $("#usr"),
    pass: $("#pass"),
    cop: $("#cop"),
    mob: $("#mob")

}
$.ajax({
    type: 'POST',
    contentType: 'application/json',
    url: "URL",
    dataType: "json",
    data: formData,
    success: function(data) {
        //success handling
    },
    error: function(data) {
        //error handling
    }
});

在所有这些函数返回true之后运行此脚本

validateUserName()
validatePassword()
validateMobileNumber()

确保使用JSON格式请求和响应。否则,它就不会起作用。转换您的php逻辑,以便使用JSON格式对数据进行请求和响应。

参考:http://www.androidhive.info/2012/05/how-to-connect-android-with-php-mysql/