首先让我澄清一点,我是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
。
感谢!!!
答案 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);
}
});
});
});
希望有所帮助。干杯!