0

首先让我澄清一下,我完全是 AJAX 和 CodeIgniter 的初学者。

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

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

我需要做的是Input Field在更改selecthtml 元素时更新表单中的 a 。

<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输入文本字段的值。

谢谢!!!

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
}

修改您的 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);
        }        
      });
    });
  });

希望有帮助。干杯!

于 2012-11-29T14:23:45.983 回答