0

このデモでは、フォームから入力を取得し、それらをjsonオブジェクトに入れて、ajax経由でサーバーに送信しています。サーバー上のデータをフォームに再入力するにはどうすればよいですか?コンソールで印刷することはできますが、フォームで印刷する方法がわからないようです。jsonObject.firstNameのようなものをフォームフィールドのどこかに置くのと同じくらい簡単ですか?

形:

div class="form">      
      <form method="GET" action="demo.html">  
      <section class="formSection">  
        <div class="dataChunk">
          <label for="firstName">First Name:</label>
          <input type="text"  id="jsonObject.firstName" maxlength="50" />  
        </div>                    
        <div class="dataChunk">    
          <label for="lastName">Last Name:</label>         
          <input type="text"  id="lastName" maxlength="50" />  
        </div>       
        <div class="dataChunk">   
          <label for="phoneNumber">Phone:</label>
          <input type="text"  id="phoneNumber" maxlength="10" />
        </div>             
        <div class="dataChunk">   
          <label for="address">Address:</label>
          <input type="text"  id="address" maxlength="50" />
        </div>  
       </section>                  
    </form> 
  </div>

jsonオブジェクト

var jsonObject = {
  "firstName" : firstName, 
  "lastName" : lastName,
  "phone" : phone,
  "address" : address
  };

php

$name = $_REQUEST['firstName']." ".$_REQUEST['lastName'];
$phone = $_REQUEST['phone'];
$address = $_REQUEST['address'];

$person = Array();
$person['name'] = $name;
$person['phone'] = $phone;
$person['address'] = $address;

$returnObj = json_encode($person);
echo $returnObj;
?>
4

2 に答える 2

2

$ .eachを使用してphpjsonでエンコードされたリターンを反復処理し、セレクターでフォーム要素を更新する必要があります

 $(document).ready(function() {
    $('form').submit( function(){
      var values = serialize( $(this) );
      $.ajax({
         url: 'demo.php'
         data: values,
         Success: function(result){
           $.each(result, function( key, value ) ({
            $('#'+key).val(value); 
           });
         }
      });
     });
  });

モバイルデバイスを使用しているためテストされていませんが、一般的なレイアウトがあります。構文エラーが発生した場合は更新します

要素IDの前にjsonobjectを配置しても、jsonが返されたオブジェクトは自動解析されません

于 2012-10-24T01:45:41.837 に答える
0

jQueryを使用すると

$('#yourInputId').val(jsonObject.firstname);

または:(申し訳ありませんが、私はプレーンJSで少し錆びています)

document.getElementById('yourInputId').value(jsonObject.firstname);

jsonObjectが使用可能な場合に使用されます。

わかりやすくするために、入力IDの名前を変更しました。お役に立てれば

于 2012-10-23T20:20:06.207 に答える