2016-07-16 9 views
0

私は新しい問題があります。私のウェブサイト全体はPHPとすべてのバリデーションで書かれています。 PHPで検証を行い、次に例のようにjavascriptを実行する方法はありますか?JavascriptのPHP検証

if (@$_POST['submit']) { 
    if ($txt == "") { 
     $err = "No comment"; 
    } 
    else { 
     echo "<script type='text/javascript'> 
      function myFunction() { 
       var txt' = '$txt'; 
       var dataString = 'txt=' + txt; 
       $.ajax({ 
        type: 'POST', 
        url: 'ajaxjs.php', 
        data: dataString, 
        cache: false, 
        success: function(php) { 
         alert(php); 
        } 
       }); 
      } 
     </script>"; 
    } 
} 

<div id="text"> 
    <form action="" method='POST'> 
     <textarea maxlength="2000"></textarea> 
     <input type='button' onclick="myFunction()" name='submit' value='post' /> 
    </form> 
</div> 

これは機能しません。だから私はどうすればいいのだろう? 私はフォームがjavascriptで動作しないと思いますが、フォームなしでどのようにしますか?

+1

あなたは出力として正確に何を期待していますか?どこにでもJavaScript関数を使用しないでください。 'myFunction' –

+0

@PeterDarmis申し訳ありませんが、間違ったコアを投稿しました。今更新されました。これは 'onclick =" myFunction() "'で動作しません – Menel

+1

@Menel関数 'onsubmit'を実行しようとしている場合、'

'を使ってmake 'formSubmit()'はfalseを返します。これは重要です。 – timmyRS

答えて

1

まず、あなたのコードにはいくつかのエラーがあります。

  • $txt == ""場合は$txtながら求めているが目に見えてセットではありませんでした。あなたはコードがフォームの提出に実行したいことをあなたが言及:

  • あなたのテキスト領域は、すべてのempty($_POST["submit"])

セカンドがあれば

  • あなたifは求めない名前がありません。したがって、あなたは簡単にこれを行うことができます。

    <form onsubmit="formSubmit();"> 
        ... 
    </form> 
    <script> 
    function formSubmit() 
    { 
        if(...) 
        { 
         return true; // Valid inputs, submit. 
        } 
        return false; // Invalid inputs, don't submit. 
    } 
    </script> 
    

    return falseはそれが欠場ならば、フォームは通常通りに提出することになるので重要です。

  • 1

    解決策は次のとおりです。 1. submitイベントの機能を追加します。 2.フォームフィールド値をデータとしてajaxを呼び出します。 3. ajaxリクエストで呼び出され、ステータスコード(有効/無効)を返します。4. jsでコードを分析し、エラー/成功メッセージを出力します。

    2

    あなたはphpをまったく使用する必要はありません。以下の例のようにテキストエリアのデータを投稿することができます。

    HTML

    <div id="text"> 
    <textarea id="txtArea" maxlength="2000"></textarea> 
    <button id="btnSubmit" name='submit'>post</button> 
    </div> 
    

    Javascriptを/ jQueryの

    $("#btnSubmit").on('click',function(e) { 
        e.preventDefault(); 
        var txtValue = $("#txtArea").val(); 
        if(txtValue.length==0) { 
        alert("You have not entered any comments"); 
        } else { 
        $.ajax({ 
         type: 'POST', 
         url: 'ajaxjs.php', 
         data: {txt:txtValue}, 
         cache: false 
         }) 
        .done(function() { 
        alert("success"); 
        }) 
        .fail(function() { 
        alert("error"); 
        });  
        } 
    });