【问题标题】:Integration of Javascript and PHP functions and Validation集成 Javascript 和 PHP 功能和验证
【发布时间】:2012-08-01 12:22:23
【问题描述】:

我有一个任务需要在 JavaScript 中调用验证 onsubmit。这部分工作得很好。

第二部分是合并服务器端的 PHP 验证。编码应该在同一页面中,因此我下面的内容是通过我发现的一些研究和示例,这就是我想出的:

<?php
echo "<form action='' method='post' onsubmit='return regValidation()' id='RegistrationForm'>";
echo "  <div>";
echo "  <span class='reglbl'>";
echo "      First Name: <input type='text' name='FirstName' id='FirstNameID'/>";
echo "      Last Name: <input type='text' name='LastName' id='LastNameID'/>";
echo "  </span>";
echo "  </div>";
echo "  <div>";
echo "  <span class='reglbl'>";
echo "      Email Address: <input type='text' name='email' id='EmailID'/>";
echo "      Phone Number: <input type='text' name='PhoneNum' id='PhoneNumID'/>";
echo "  </span>";
echo "  </div>";
echo "  <div class='reglbl'>Pssword: <input type='password' name='PWD1' id='PWD1'/></div>";
echo "  <div class='reglbl'>Confirm Password: <input type='password' name='PWD2' id='PWD2'/></div>";
echo "  <div><input type='submit' value=' Register ' id='sub' /></div>";
echo "</form>";
if(!isset($_REQUEST['FirstName']) ||
    !isset($_REQUEST['LastName']) ||
    !isset($_REQUEST['email']) ||
    !isset($_REQUEST['PhoneNum']) ||
    !isset($_REQUEST['PWD1']) ||
    !isset($_REQUEST['PWD2']) ||
    $_REQUEST['FirstName'] =="" ||
    $_REQUEST['LastName'] == "" ||
    $_REQUEST['email'] == "" ||
    $_REQUEST['PhoneNum'] == "" ||
    $_REQUEST['PWD1'] == "" ||
    $_REQUEST['PWD2']=="") 
{
    echo "<script>alert('Please enter all fields!')</script>";
} elseif($_REQUEST['PWD1']!=$_REQUEST['PWD2']) {
    echo "<script>alert('Passwords entered do not match!')</script>";
} elseif(strlen($_REQUEST['PWD1'])<8||strlen($_REQUEST['PWD2'])<8) {
    echo "<script>alert('Passwords must be 8 or more characters!')</script>";
} else {
    // CALL A FUNCTION IN PHP HERE
}
?>

因此,Java 和 PHP 中的验证都是相同的,唯一的区别是 PHP 会检查更多的 8 个字符长度的密码,但是当执行此代码时,JavaScript 会进行唯一的验证。

我也想知道如何调用一个外部 PHP,其中包含一个用于最终 else 的脚本。

这里是 javascript 代码 /注册验证 函数 regValidation(){

var firstName = document.getElementById('FirstNameID');
var lastName = document.getElementById('LastNameID');
var email = document.getElementById('EmailID');
var pwd1 = document.getElementById('PWD1');
var pwd2 = document.getElementById('PWD2');


if(firstName.value == '' || lastName.value == '' || email.value == '' || pwd1.value == '' || pwd2.value == '')
{
    alert("Please enter all fields!");
}
else if (pwd1.value !== pwd2.value)
{
    alert("Passwords entered do not match!");   
}
else
{

}
return false;

}

【问题讨论】:

  • 您的代码 sn-p 中没有客户端 JavaScript 验证。
  • 我建议您将 HTML 部分从 PHP 中移出。
  • javascript 是外部调用的,我只是添加了我的函数的代码。
  • @JonasG.Drange 取出表格部分是什么意思??
  • 我的意思是回显一堆 HTML 是不好的做法。

标签: php javascript forms function xhtml


【解决方案1】:

试试这个对你有帮助

<?php
echo "<form action='' method='post' onsubmit='return regValidation()' id='RegistrationForm'>";
echo "  <div>";
echo "  <span class='reglbl'>";
echo "      First Name: <input type='text' name='FirstName' id='FirstNameID'/>";
echo "      Last Name: <input type='text' name='LastName' id='LastNameID'/>";
echo "  </span>";
echo "  </div>";
echo "  <div>";
echo "  <span class='reglbl'>";
echo "      Email Address: <input type='text' name='email' id='EmailID'/>";
echo "      Phone Number: <input type='text' name='PhoneNum' id='PhoneNumID'/>";
echo "  </span>";
echo "  </div>";
echo "  <div class='reglbl'>Pssword: <input type='password' name='PWD1' id='PWD1'/></div>";
echo "  <div class='reglbl'>Confirm Password: <input type='password' name='PWD2' id='PWD2'/></div>";
echo "  <div><input type='submit' name='formSubmit'value='Register' id='sub' /></div>";
echo "</form>";
if(isset($_REQUEST['formSubmit']) && $_REQUEST['formSubmit'] == 'Register')
{
if(!isset($_REQUEST['FirstName']) ||
    !isset($_REQUEST['LastName']) ||
    !isset($_REQUEST['email']) ||
    !isset($_REQUEST['PhoneNum']) ||
    !isset($_REQUEST['PWD1']) ||
    !isset($_REQUEST['PWD2']) ||
    $_REQUEST['FirstName'] =="" ||
    $_REQUEST['LastName'] == "" ||
    $_REQUEST['email'] == "" ||
    $_REQUEST['PhoneNum'] == "" ||
    $_REQUEST['PWD1'] == "" ||
    $_REQUEST['PWD2']=="") 
{
    echo "<script>alert('Please enter all fields!')</script>";
} elseif($_REQUEST['PWD1']!=$_REQUEST['PWD2']) {
    echo "<script>alert('Passwords entered do not match!')</script>";
} elseif(strlen($_REQUEST['PWD1'])<8||strlen($_REQUEST['PWD2'])<8) {
    echo "<script>alert('Passwords must be 8 or more characters!')</script>";
} else {
    // CALL A FUNCTION IN PHP HERE
}
}
?>

javascript函数可以为密码长度添加更多验证

<script>
function regValidation(){

var firstName = document.getElementById('FirstNameID');
var lastName = document.getElementById('LastNameID');
var email = document.getElementById('EmailID');
var pwd1 = document.getElementById('PWD1');
var pwd2 = document.getElementById('PWD2');


if(firstName.value == '' || lastName.value == '' || email.value == '' || pwd1.value == '' || pwd2.value == '')
{
    alert("Please enter all fields!");
}
else if (pwd1.value !== pwd2.value)
{
    alert("Passwords entered do not match!");   
}
else
{
    return true;
}
return false;
}
</script>

【讨论】:

  • ive 厌倦了 If 语句和返回的更改,但它仍然不起作用。它只检查 js 验证。
猜你喜欢
  • 2014-07-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-07-19
相关资源
最近更新 更多