【发布时间】:2017-04-18 13:19:27
【问题描述】:
在我看来,我有一个 jquery,它将一个选择下拉值发送到我的控制器,然后我在我的模型中调用一个函数来使用这个值运行一个查询并从数据库中获取一个结果数组,该数组将显示在在我看来是一张桌子。
这是我视图中的 jquery 部分
$('#idFamilia').change(function(){
var clave = $("#idFamilia option:selected").text();
if (clave != "Seleccione"){
$.ajax({
url: '<?php echo base_url(); ?>index.php/Proveedor/obtenerListaProveedorFamilia',
method: 'POST',
data: {
clave: clave
},
success: function (returned) {
console.log(returned);
//Here I need to get the array listaproveedorfamilias
}
});
}
});
这是我的控制器部分的代码,我在其中发布值并调用模型函数
function obtenerListaProveedorFamilia(){
$this->load->model('Proveedormodel');
$clave = $_POST['clave'];
$data['listaproveedorfamilia'] = $this->Proveedormodel->get_all_listaproveedorfamilia($clave);
$data['_view'] = 'proveedor/index';
$this->load->view('layouts/main',$data);
}
这是在我的模型中运行查询的函数。我已经使用 jquery 函数中的控制台日志验证了它是否有效
function get_all_listaproveedorfamilia($clave)
{
$this->db->select('proveedor.razonSocial, proveedor.nombre1, proveedor.telefonoFijo1, proveedor.telefonoMovil1, proveedor.correoElectronico1, proveedor.tipo, familia.clave');
$this->db->from('proveedor');
$this->db->join('relacionproveedorfamilia', 'relacionproveedorfamilia.idProveedor = proveedor.id', 'inner');
$this->db->join('familia', 'familia.id = relacionproveedorfamilia.idFamilia', 'inner');
$this->db->where('familia.clave', $clave);
$this->db->order_by('proveedor.razonSocial');
$query = $this->db->get();
if($query->num_rows() > 0){
return $query->result_array();
}
}
问题是在我看来,我似乎无法使用数组 $data['listaproveedorfamilia']。这是我已经尝试过的一些事情:
-循环遍历数组并获取每个值,这将在我的视图中作为表格附加。 (这只是我使用数组值的部分)
"<?php foreach($listaproveedorfamilia as $p){ ?>" +
"<tr>" +
"<td><?php echo $p['razonSocial']; ?></td>" +
"<td><?php echo $p['nombre1']; ?></td>" +
"<td><?php echo $p['telefonoFijo1']; ?></td>" +
"<td><?php echo $p['telefonoMovil1']; ?></td>" +
"<td><?php echo $p['correoElectronico1']; ?></td>" +
"<td><?php echo $p['tipo']; ?></td>" +
"<td><?php echo $p['clave']; ?></td>" +
"</tr>"
"<?php } ?>"
-将数组保存在 javascript 数组变量中
var myArray = new Array();
myArray = <?php echo json_encode($listaproveedorfamilia); ?>
这些都不起作用。每次我在浏览器中加载视图时,我都会在控制台中看到以下错误消息。
A PHP Error was encountered
Severity: Notice
Message: Undefined variable: listaproveedorfamilia
如果我理解正确,问题是页面加载后,它会尝试查找变量 listaproveedorfamilia。问题是首先需要加载页面,然后用户需要从下拉列表中选择一个选项,然后发送选择以运行查询,并将结果保存在变量中。
我怎样才能做到这一点? 感谢您的帮助。
【问题讨论】:
标签: javascript php jquery ajax codeigniter