フォーム付きの単純なHTMLファイルがあります。
<form action="register.php" method="get" id="submitform">
First Name:
<input type="text" class="fb-input" name="fname" id="firstname" />
<br>
<div class="fb-error">
</div>
<input type="button" name="signupBtn" id ="sub" value="Sign upw">
</form>
送信ボタンを押すと、フィールドが空の場合、これはjqueryでチェックされます。
$(document).ready(function(){
$("#sub").click(function(){
register();
});
});
function register(){
var firstname=$("#firstname").val();
if(firstname==""){
$(".fb-error").show().html("You must fill the fields.");
}else{
$(".fb-error").hide();
$("#submitform").submit();
}
}
次に、チェックされた後、フォームに入力された文字をさらにチェックするためにphpファイルに送信され、無効な文字が見つかった場合はエコーされます。
私が欲しいのは、phpファイルのページ送信後に行っているチェックがjquery内に転送されることです。例:
function register(){
var firstname=$("#firstname").val();
if(...){
<?php
if(preg_match(....)){....}
?>
}else{
.....
}
}
私はこれを試しましたが、うまくいきませんでした。私はphpをjqueryの中に入れることができないと思います。phpをjquery内に配置したい理由は、HTMLのdiv部分にエラーメッセージを表示できるようにするためです。ページを送信すると、phpのエラーメッセージが表示される別の空白のページに移動するためです。上。
私がしていることは、Facebookの登録のようなもので、送信して間違った文字を入力すると、下部にエラーメッセージが表示されます。phpを使用する必要があります。jqueryはオプションです。
誰かがこれで私を助けることができますか?または、これを行うためのより良い方法を提案できますか?
更新しました:
HTMLコード:
<html>
<head>
<title>Facebook Registration</title>
</head>
<body>
<form action="register.php" method="get" id="submitform">
First Name:
<?php $fname = isset($_POST['fname']) ? $_POST['fname'] : ''; ?>
<input type="text" class="fb-input" name="fname" value="<?php echo $fname; ?>">
<br>
<div class="fb-error">
</div>
<input type="submit" name="signupBtn" id ="sub" value="Sign upw">
</form>
PHPファイル:
<?php
$fname=$_GET['fname'];
if((preg_match("/^[a-zA-z]{1,}$/",$fname))){
echo "registered";
}
else{
var_dump($_POST);
echo "<form id='retForm' method='post' action='index.php'>";
echo "<input type='hidden' name='fname' value='$_POST[fname]'>";
echo "<script>$(document).ready(function() { $('#retForm').submit() });</script>";
}
?>