1

私はユーザーに値を入力して送信するように求めるこのコードを持っています。

html

 <form id="myForm" method="post" action="saving.php">
            <p><label for="input1">Input 1:</label>
                <input type="text" size="10" name="input1" id="input1" />
            </p>
            <input id="save" name="save" type="submit" value="save" />
    </form>
    <p><span id="thevalue"></span><span id="existornot"></span></p> 

js

$("#myForm").submit(function(event) {    
    event.preventDefault();      
    $("#myForm").validate(
      {     rules: {input1: "required",},
            messages: {input1: "message error input"},
            });
    if( $("#myForm").valid()){ 
        var $form = $("#myForm" ),
        url = $form.attr( "action" ), 
        insertedVal=$("#input1").val(); 

        $.post(url,{input1:insertedVal},  
          function(){

          //displaying value condition
          $("#thevalue").html(insertedVal);
          // ... msg from php to be inserted to #existornot 

          });  
       }
}); 

Saving.php

<?php
  if(!empty($_POST['input1']))
  {
    $inputone= mysql_real_escape_string(trim($_POST['input1']));
    $result = mysql_query("SELECT COUNT(*) FROM `test_table` WHERE `name` = '$inputone' ");
      if (mysql_result($result, 0, 0) > 0) 
      {
        echo "is duplicate data" ;
      } 
      else 
      {      
        mysql_query("INSERT INTO `test_table`(name)  VALUES ('$inputone')") ;
         echo "is updated to db" ;
      }
  }
  else
  {
    echo "could not be empty"  ;
  }

?>

「データが重複しています」または「データベースに更新されました」というメッセージをphpからjavasriptに渡す方法で、送信プロセスが失敗または成功したことをユーザーに通知しますか?

アドバイスをよろしくお願いします。

4

5 に答える 5

1

jQuery ポストの後の関数呼び出しを変更して、データ変数を受け入れて結果を処理します。

    $.post(url,{input1:insertedVal},  
      function(data){

      //displaying value condition
      $("#thevalue").html(insertedVal);
      // ... msg from php to be inserted to #existornot 

      if (data != 'is updated to db') {
          alert(data);
      }

      });  
   }

(データには、保存機能でエコーされたものが含まれます)

于 2013-01-03T18:22:59.957 に答える
1

PHP ファイルからの応答は、ajax コールバック関数にあります。したがって、次のように関数にパラメーターを追加する必要があります。

$.post(url,{input1:insertedVal},function(resp)
{
     // resp is the callback from php.
     console.log(resp);
     $("#thevalue").html(insertedVal);
});

ajax の仕組みの詳細については、次のリンクをたどることができます: jQuery を使用して Ajax 呼び出しを行う 5 つの方法が
役立ちます。

于 2013-01-03T18:23:15.483 に答える
0

PHP から返された値を出力したい場合は、jquery の $.post を確認してください。

$.post(url,{input1:insertedVal},  
          function(data){
          //displaying value condition
          $("#somediv_id").html(data);
          $("#thevalue").html();
          // ... msg from php to be inserted to #existornot 

 });  
于 2013-01-03T18:18:08.330 に答える
0

このような:

$.post(url,{input1:insertedVal},  
      function(data){

      //displaying value condition
      $("#thevalue").html(insertedVal);
      // ... msg from php to be inserted to #existornot 
      $("#existornot").html(data);

      });  
   }

"data" 変数を callback function() に追加すると、その "data" 変数は出力としての php エコーで更新されます。次に、その「データ」をコールバック関数の #existornot に挿入できます。

ここで API を参照してください: http://api.jquery.com/jQuery.post/

于 2013-01-03T18:16:27.660 に答える
0

$.post コールバック関数には、サーバーの応答を含む引数が渡されます。したがって、 $.post リクエストは次のようになります

$.post(url, {input1: insertedVal}, function(response) {
    console.log(response); // should output the server message echoed.
});

通常は、JSON をサーバーの応答として使用することも最適です。

于 2013-01-03T18:23:00.410 に答える