0

javascript に入力する php 変数を含むフォームを送信したいのですが、問題は、変数が投稿後にのみ設定され、javascript にエコーするには遅すぎることです。もちろん、もう一度送信すると、変数は JavaScript に実装されており、正常に機能します。ただし、1回だけ提出することをお勧めします。送信前にフォームを検証する方法はありますか? これが私のジレンマの例です。

<?php
      if(isset($_POST['submit'])){$name=$_POST['name'];}
?>

<html>
 <div id="message"></div>
    <form action="home.html" method="POST">
       <input type="text" name="name">
       <input type="submit" name="submit" value="conditions-met" 
              onclick=<?php if($name=="bob"){echo"start();";}?>>
    </form>
</html>

 <script type="text/javascript">

  function start(){
       document.getElementById('message').innerHTML = 'hello bob';
  return true;
}
 </script>
4

4 に答える 4

2

男の人々はあなたに意地悪です!

基本的に、JavaScript を使用してフィールドを検証する必要があります。

送信ボタンがクリックされると、チェックが行われます。成功した場合は続行し、失敗した場合はエラー メッセージを表示します。

<form id="myForm" onsubmit="return ValidateFields(this)" name="myForm" accept-charset="UTF-8" enctype="multipart/form-data"" action="myPhpScript.php" method="POST">

// html fields


</form>


<script>

function ValidateFields(formObject)
{

   var FieldsValid = true;

   //Validate the fields and if one of them is not valid set FieldsValid to false

if(!FieldsValid )
{
   //show an error message

return false; // Returing false will prevent the form from submitting

}

return true;// the form will be submitted
}

</script>

忍者になるためには、以下をお読みください。

http://www.script-tutorials.com/form-validation-with-javascript-and-php/

http://www.webcredible.co.uk/user-friendly-resources/dom-scripting/validate-forms-javascript.shtml

http://www.w3schools.com/js/js_form_validation.asp

于 2013-01-14T14:26:17.990 に答える
1

onclick-eventにバインドされた関数は、検証が正しい場合はtrueを返し、そうでない場合はfalseを返す必要があります。

同じ関数がjavascriptに含まれている必要があります。その中でphp関数を呼び出すことはできません。PHPが必要な場合は、ajaxを試してください。

<input type="submit" onsubmit="return validate();" />

<script>
    function validate() {
        // do validation in javascript
        // or make an ajax request e.g. to 
        //  /validate.php?name=somename&surname=someothername 
        // and let this request answer with true or false

        // return true if valid, otherwise false
    }
</script>
于 2013-01-14T14:05:10.160 に答える
1
<html>
<div id="message"></div>
<form action="home.html" method="POST" onsubmit="return validate()">
<input type="text" name="name" id="name">
<input type="submit" name="submit" value="conditions-met" >
</form>
</html>

<script type="text/javascript">

function validate(){

name=document.getElementById('name').value;
if(name == "")
{
document.getElementById('message').innerHTML = 'Please Fill Name';
return false;
}
return true;
}
</script>
于 2013-01-14T14:43:55.757 に答える
1

あなたはJqueryでAjaxとbeforeSubmit関数でそれを行うことができます

$.ajax({
            url: "your async page in php",
            cache: true,
            data: $("#formID").serialize(),
            type: 'POST',
            beforeSend: function(){ 
                         /* You can validate your input here*/
            },
            success: function(response){
                /* Based on the response from php you can handle the message to the user*/
            },
            error: function(response){/*Error Handler*/},
            complete: function(){/*If it's complete than you can reset the form*/}
        });

クロスAjax/PHPリクエストを使えば簡単でわかりやすいと思います

于 2013-01-14T14:32:11.563 に答える