0

まず、私がAJAXとCodeIgniterの完全な初心者であることを明確にしておきます。

私は最初にこの記事を読んでいて、私はいくつかを理解していると思います:

http://www.amitavroy.com/justread/content/articles/getting-ajax-data-using-views-codeigniter

私がする必要があるのは、 html要素Input Fieldを変更するときにフォームのを更新することです。select

<select class="select" name="formulario">
  <?php
  foreach($listaForms as $form) {
    echo "<option value={$form}>{$form}</option>";
  }
  ?>
</select>

私はこれを行う方法を知っています:

1)jqueryで、を聞きchange()ます。2)POSTでajax関数を作成します。3)データを取得するためのパブリック関数を作成します。

さて、問題はここに行きます...

私が読んでいるチュートリアルでは、男はHTML応答を受け取ります。

必要な値は1つだけ、または多くの値です。この特定のケースでは、最後に印刷された数値(テキストファイルに保存されている)という1つの値のみが必要です。

問題は、必要な値をどのように特定できるかということです。応答が次のようになっていると仮定します。

LastPrintedNumber=>23
OtherValue=>20

Javascriptを使用して、応答に必要な値を正しく識別し、それを変更するにはどうすればよいですか?

値を特定して取得したら、value[入力テキスト]フィールドのを変更するだけでよいと思います。

ありがとう!!!

4

1 に答える 1

0

サーバーの応答はJSON形式である必要があります。PHPのjson_encode関数を使用します。PHP(サーバー側)コードは次のようになります。

// if it's a json request
if(!empty($_POST['data']) && 'ajax' == $_POST['data'])
{
    $res = array('LastPrintedNumber' => 23, 'OtherValue' => 20);
    header('Content-type: application/json');
    echo json_encode($res);
    exit; // no need to render the template
}

JSON応答を処理/解析できるようにjQueryコードを変更します。

  $(function(){
    $('#formulario').change(function() {
      $.ajax({
        type: 'POST',
        url: '/migup',
        data: {'data' : 'ajax', 'selectedValue' : $(this).val()},
        dataType: 'json',
        success: function(val) {
          console.log('LastPrintedNumber: ' + val.LastPrintedNumber);
          alert('OtherValue:' + val.OtherValue);
        }        
      });
    });
  });

お役に立てば幸いです。乾杯!

于 2012-11-29T14:23:45.983 に答える