通过AJAX获取价值并在元素CodeIgniter上显示它

时间:2012-11-29 13:45:12

标签: jquery ajax codeigniter

首先让我澄清一点,我是AJAX和CodeIgniter的完全开始。

我正在阅读这篇文章,我想我理解了一些:

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

我需要做的是在更改Input Field html元素时更新表单中的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响应。

我只需要一个值或多个值。在这种特殊情况下,我只需要一个值,即最后打印的数字(存储在文本文件中)。

问题是,我如何确定我需要的值,假设响应是:

LastPrintedNumber=>23
OtherValue=>20

如何使用Javascript正确识别响应中需要的值然后更改它?

我想,一旦我识别并获得了值,我只需要更改输入文本字段的value

感谢!!!

1 个答案:

答案 0 :(得分: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
}

修改您的jQuery代码,以便它可以处理/解析JSON响应:

  $(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);
        }        
      });
    });
  });

希望有所帮助。干杯!