ブラウザから隠す方法フォームが送信されたら、PHPのエコーの出力を表示しますか?私は検証のためにjQueryを検証しました -- php フィールド と jquery-validate フィールド と echo フィールド 関連 問題

How to hide from browser's display the output of echo in php when the form is submitted? I used jquery validate for validation












-1
vote

問題

日本語

新しいユーザーを登録するときはいつでも、ページの上に「echo」の出力を非表示にしたいです。また、私はjQuery-Validate Remoteを私のスクリプトで使用しています。これを非表示にするには、<コード> ob_start() ob_end_clean() ob_end_clean() も試しましたが、データベースにすべてのデータを挿入しません。私を助けてください。

<事前> <コード> if(isset($_POST['uname'])){ $uname = mysqli_real_escape_string($conn, $_POST['uname']); $query = "SELECT * from tbl_users where Username = '$uname'"; $result = mysqli_query($conn,$query) or die(mysqli_error($conn)); if(mysqli_num_rows($result) > 0){ echo "false"; } else { echo "true"; } } //on submit if(isset($_POST['register'])){ $fname = mysqli_real_escape_string($conn, $_POST['fname']); $lname = mysqli_real_escape_string($conn, $_POST['lname']); $email = mysqli_real_escape_string($conn, $_POST['email']); $uname = mysqli_real_escape_string($conn, $_POST['uname']); $pwd = mysqli_real_escape_string($conn, $_POST['pwd']); $pwd = md5($pwd); $sql = "SELECT * FROM tbl_users WHERE Username='$uname'"; $checkRows = mysqli_query($conn, $sql) or die(mysqli_error($conn)); if(mysqli_num_rows($checkRows) > 0){ echo "You are already registered"; } else { $query = "INSERT into tbl_users(Firstname,Lastname,Email,Username,Password) VALUES ('$fname','$lname','$email','$uname','$pwd')"; $result = mysqli_query($conn, $query) or die(mysqli_error($conn)); echo "REGISTERED SUCCESSFULLY"; mysqli_close($conn); } }

これは私のスクリプトです。私を助けてください。

<事前> <コード> $('#registration-form').validate({ rules: { uname: { minlength: 6, required: true, alphanumeric:true, remote: { url: 'includes/registration.php', type: "post" } } });
英語

I want to hide the output of 'echo' on top of my page whenever I register a new user. Also, I'm using jQuery-validate remote in my script. I also tried ob_start() and ob_end_clean() to hide this, but it doesn't insert all the data into database. Please help me, thank you so much in advance.

if(isset($_POST['uname'])){     $uname = mysqli_real_escape_string($conn, $_POST['uname']);     $query = "SELECT * from tbl_users where Username = '$uname'";     $result = mysqli_query($conn,$query) or die(mysqli_error($conn));     if(mysqli_num_rows($result) > 0){         echo "false";     }     else {         echo "true";     }    } //on submit if(isset($_POST['register'])){     $fname = mysqli_real_escape_string($conn, $_POST['fname']);     $lname = mysqli_real_escape_string($conn, $_POST['lname']);     $email = mysqli_real_escape_string($conn, $_POST['email']);     $uname = mysqli_real_escape_string($conn, $_POST['uname']);     $pwd = mysqli_real_escape_string($conn, $_POST['pwd']);     $pwd = md5($pwd);      $sql = "SELECT * FROM tbl_users WHERE Username='$uname'";     $checkRows = mysqli_query($conn, $sql) or die(mysqli_error($conn));      if(mysqli_num_rows($checkRows) > 0){         echo "You are already registered";     }     else {         $query = "INSERT into tbl_users(Firstname,Lastname,Email,Username,Password) VALUES ('$fname','$lname','$email','$uname','$pwd')";         $result = mysqli_query($conn, $query) or die(mysqli_error($conn));         echo "REGISTERED SUCCESSFULLY";         mysqli_close($conn);     } } 

Here is my script. Please help me.

$('#registration-form').validate({   rules: {   uname: {     minlength: 6,     required: true,     alphanumeric:true,     remote: {       url: 'includes/registration.php',       type: "post"     }   } }); 
</div
        
         
         

回答リスト

1
 
vote

あなたの説明から理解するものは、PHPファイルによって生成されたページがあるということです。そのページはJavaScript / Ajaxから呼び出されます。 Ajaxで呼び出された場合、JavaScriptの検証コードが機能できるように、True / False出力が必要です。ただし、ページを生成するだけでは、出力はそこにしないでください。あなたが言っているのは、true / false出力が条件付きであるということです。したがって、PHPコードは、JavaScriptから呼び出されているかどうかを知る方法を持たなければなりません。

あなたが尋ねている誤解があれば、質問を更新してください。

それをする1つの方法は、Ajaxから呼び出されたときに別のパラメータを渡すことです。

<事前> <コード> $isAjax = $_GET['isAjax'] ?? false; if(isset($_POST['uname'])){ $uname = mysqli_real_escape_string($conn, $_POST['uname']); $query = "SELECT * from tbl_users where Username = '$uname'"; $result = mysqli_query($conn,$query) or die(mysqli_error($conn)); if(mysqli_num_rows($result) > 0){ if ( $isAjax ) echo "false"; } else { if ( $isAjax ) echo "true"; } }

その後、JavaScriptから呼び出すと、出力が欲しいと思います。

<事前> <コード> $('#registration-form').validate({ rules: { uname: { minlength: 6, required: true, alphanumeric:true, remote: { url: 'includes/registration.php?isAjax=1', type: "post" } } });
 

What I understand from your explanation is that you have a page generated by a php file. That page also gets called from JavaScript/AJAX. When called via AJAX, it needs the true/false output so that the validation code in JavaScript can work. However, when it is just generating a page, then the output should not be there. What you are saying is that the true/false output is conditional. Therefore, the PHP code has to have a way to know if it is being called from JavaScript or not.

If I have misunderstood you are asking, please update your question.

One way to do that is to pass another parameter when it is called from AJAX.

$isAjax = $_GET['isAjax'] ?? false; if(isset($_POST['uname'])){     $uname = mysqli_real_escape_string($conn, $_POST['uname']);     $query = "SELECT * from tbl_users where Username = '$uname'";     $result = mysqli_query($conn,$query) or die(mysqli_error($conn));     if(mysqli_num_rows($result) > 0){         if ( $isAjax ) echo "false";     }     else {         if ( $isAjax ) echo "true";     }    } 

Then, when you call it from JavaScript, tell it you want the output.

$('#registration-form').validate({   rules: {   uname: {     minlength: 6,     required: true,     alphanumeric:true,     remote: {       url: 'includes/registration.php?isAjax=1',       type: "post"     }   } }); 
</div
 
 
 
 
0
 
vote
vote
ベストアンサー
 

私がしたことは私のスクリプトにパラメータを追加することであったら、それを私のphpファイルに渡します。

<事前> <コード> $('#registration-form').validate({ rules: { uname: { minlength: 6, required: true, alphanumeric:true, remote: { url: 'includes/registration.php', type: "post", data: { 'username_check': 1, uname: function (){ return $('#registerUsername').val(); } } } } });

これは私の更新されたPHPファイルです。私は私のスクリプトで作成したパラメータを呼びました。

<事前> <コード> if(isset($_POST['username_check'])){ $uname = mysqli_real_escape_string($conn, $_POST['uname']); $query = "SELECT * from tbl_users where Username = '$uname'"; $result = mysqli_query($conn,$query) or die(mysqli_error($conn)); if(mysqli_num_rows($result) > 0){ echo "false"; } else { echo "true"; } }
 

What I did was to add a parameter in my script then pass it on my php file.

$('#registration-form').validate({     rules: {     uname: {     minlength: 6,     required: true,     alphanumeric:true,     remote: {       url: 'includes/registration.php',       type: "post",       data: {         'username_check': 1,         uname: function (){           return $('#registerUsername').val();         }       }     }   } }); 

Here is my updated php file. I called the parameter I created in my script.

if(isset($_POST['username_check'])){   $uname = mysqli_real_escape_string($conn, $_POST['uname']);   $query = "SELECT * from tbl_users where Username = '$uname'";   $result = mysqli_query($conn,$query) or die(mysqli_error($conn));   if(mysqli_num_rows($result) > 0){     echo "false";   }   else {     echo "true";   }    } 
</div
 
 

関連する質問

29  ループのないアレイの鍵と値の値  ( Echo key and value of an array without and with loop ) 
これは私が持っている配列です <事前> <コード> <?php $page['Home']='index.html'; $page['Service']='services.html'; ?> どのように私は個人用のようなもののようなものをエコーにしますか...

1  出力前のCURLを操作する  ( Manipulating curl obtained data before outputting ) 
以下のコードを使用して、サイトからHTMLテキストをプルして自分で公開する。 <コード> echo ?の前に<コード> curl ハンドルを操作する方法 <事前> <コード> $ch = curl_init(); curl_setopt($ch, CUR...

12  Javascriptのインライン出力  ( Javascript inline output ) 
には、あなたは、コードのこの部分を持っていると仮定するJavaScriptます: <事前> <コード> <div> <script type="text/javascript">var output = 'abcdefg';</script> </di...

0  エコーエラーなしがMySQLからデータを表示していません  ( Echo no error but not displaying data from mysql ) 
エコーの説明: '$ row ['説明 '];以下のコードではまったく表示されていません...最初のステートメントを実行しますが、2番目のものは実行されていないようです。理由はわかりません。私はより悪い種類のエラーであるエラーを得ていません。いくつかの助けをし...

0  エコー「テキスト」、スリープ2S、消去「テキスト」、「エコー」テキスト2 "など  ( Echo text sleep 2s erase text then echo text 2 etc ) 
:のようなカレンダー上のイベントを単に出力するシェルスクリプトがあります。 <事前> <コード> Event 1 Monday 10:00PM - 11:00PM Event 2 Monday 11:00PM - 11:30PM 出力に一度に1つのイベン...

0  エコーとのあいまいなリダイレクトエラー  ( Ambiguous redirect error with echo ) 
特定のディレクトリ内のすべてのテキストファイルに簡単なものを書き込もうとしています。 <事前> <コード> $ touch a{1..9}.txt $ echo "." > *.txt bash: *.txt: ambiguous redirect このエ...

0  スタイル既存のクラス(PHPエコー)  ( Style existing class php echo ) 
既存のクラスのテキストをPHPを使用して作成したMy Form Submissionからの結果を変更しようとしています。 <事前> <コード> <h5 class="when-text"> Form not submitted </h5> は、ボディタグ...

2  構造化SQL SELECTをBASHで印刷する簡単な方法  ( Simple way to print structured sql select in bash ) 
列名を持つ構造化フォームに、SELECTリクエストの出力をBASHでエコーしようとしています。この問題は、2つ以上のフィールドを使用して正しく実行できないか、またはその値が列名の大きい場合は 例: マイテーブルは次のようになります.value1 value2 ...

0  PHPの文字列を使用して配列を呼び出す方法  ( How to call an array using a string in php ) 
私は数値順にアレイの束をエコーし​​たいと思います、私はメソッドを使って使ってみましたが、文字列を組み合わせて変数を呼び出して配列内の値を取得する方法についての知識がありません。 <事前> <コード> $ins1 = array ( ...

3  PHP EchoステートメントはEclipse w / Xdebugでブラウザの出力に表示されませんか?  ( Php echo statements dont show in browser output in eclipse w xdebug ) 
Eclipse PDTを使用してWin7-64を使用してXAMPPでXDebugをテストしています。私はechoesステートメントを述べる単純なスクリプトをデバッグしています。これらのステートメントを踏むことができますが、内部Webブラウザウィンドウには、ス...




© 2022 cndgn.com All Rights Reserved. Q&Aハウス 全著作権所有