Jqgrid从MySql查询填充选择

时间:2011-08-15 00:52:29

标签: jquery jqgrid

我在尝试从Mysql查询中填充editform中的select时遇到了一些问题。我正在阅读一些博客,但我找不到解决方案。下面我附上一些代码。

这是collmodel:

jQuery("#grid_pacientes").jqGrid({
    url:'conec_paciente.php',
datatype: "json",
//loadonce: true,
    //
    colNames:['id','Nombre','Apellido','Telefono','Obra Soc'],
colModel:[
    {name:'id_paciente',index:'id_paciente', width:40, sorttype:'int'},
    {name:'nombre',index:'nombre', width:100,editable:true,editoptions:{size:10},resizable:false, sorttype:'text'},
    {name:'apellido',index:'apellido',width:100, editable: true,resizable:false, sorttype:'text'},
    {name:'telefono',index:'telefono',width:100, editable: true,resizable:false, sorttype:'int'},
    {name:'id_obra',index:'id_obra',width:100, editable: true,resizable:false, sorttype:'int',edittype:"select"
           }
        ],

最后一个coll(id_obra)是我需要填写的那个。

这是我执行MySql查询的php页面:

    <?php
include_once 'lib.php';
$conexion= mysql_connect($dbhost, $dbuser, $dbpassword);
mysql_select_db($database, $conexion);
$result = mysql_query("SELECT id_obra, nombre
                       FROM obras", $conexion) or die(mysql_error());
$i=0;
while($row = mysql_fetch_array($result,MYSQL_ASSOC)) {
    $responce->rows[$i]['id']=$row["id_obra"];
    $responce->rows[$i]['cell']=array($row["id_obra"],$row["nombre"]);
    $i++;
}
echo json_encode($responce);
?>

所以...这是所有的代码,我认为我需要一个函数,但我不知道该怎么做。 提前谢谢,对不起我的英文

2 个答案:

答案 0 :(得分:2)

感谢您的帮助。我找到了解决方案 这是我在你告诉我的http://url_where_data_will_be_gathered中输入的代码:

    <select>

<?php
include_once 'lib.php';
$conexion= mysql_connect($dbhost, $dbuser, $dbpassword);
mysql_select_db($database, $conexion);
$result = mysql_query("SELECT id_obra, nombre
                       FROM obras", $conexion) or die(mysql_error());
$i=0;
while($row = mysql_fetch_array($result,MYSQL_ASSOC)) {
?>
<option value ="<?php echo $row['id_obra'] ?>"><?php echo $row['nombre'] ?></option>
<?php } ?>

</select>

答案 1 :(得分:0)

@nacho

如果你想动态获取下拉选项,你必须指定参数“editoptions-&gt; dataInit”,以便让jqGrid知道从哪里获取数据。

{
      name:'id_obra',
      index:'id_obra',
      width:100, 
      editable: true,
      resizable:false, 
      sorttype:'int',
      edittype:"select",
      edioptions:{
            dataUrl: "http://url_where_data_will_be_gathered"
      }
}

注意添加了editoption对象。

来自http://url_where_data_will_be_gathered网址的返回数据必须采用以下格式:

 <select>
   <option value='1'>One</option>
   <option value='2'>Two</option>
 </select>

锄头帮助你。