Symfony 1.4 を使用しています。以下に示すように、互いに関連する 3 つのテーブルがあります。
表1:
Conflictos1:
connection: doctrine
tableName: conflictos_1
columns:
id:
type: integer(4)
fixed: false
unsigned: false
primary: true
autoincrement: true
id_sector_actividad:
type: integer(4)
fixed: false
unsigned: false
primary: false
notnull: true
autoincrement: false
id_subsector_actividad:
type: integer(4)
fixed: false
unsigned: false
primary: false
notnull: false
autoincrement: false
relations:
SectorActividadCiuTa7:
local: id_sector_actividad
foreign: id
type: one
SubsectorActividadTa8:
local: id_subsector_actividad
foreign: id
type: one
表 2 および 3:
SectorActividadCiuTa7:
connection: doctrine
tableName: sector_actividad_ciu_ta7
columns:
id:
type: integer(4)
fixed: false
unsigned: false
primary: true
autoincrement: true
sector_actividad:
type: string(255)
fixed: false
unsigned: false
primary: false
notnull: true
autoincrement: false
relations:
Conflictos1:
local: id
foreign: id_sector_actividad
type: many
SubsectorActividadTa8:
local: id
foreign: id_sector
type: many
SubsectorActividadTa8:
connection: doctrine
tableName: subsector_actividad_ta8
columns:
id:
type: integer(4)
fixed: false
unsigned: false
primary: true
autoincrement: true
id_sector:
type: integer(4)
fixed: false
unsigned: false
primary: false
notnull: true
autoincrement: false
descripcion:
type: string(255)
fixed: false
unsigned: false
primary: false
notnull: true
autoincrement: false
relations:
SectorActividadCiuTa7:
local: id_sector
foreign: id
type: one
Conflictos1:
local: id
foreign: id_subsector_actividad
type: many
「conflictos」という名前のモジュールを Symfony で生成しました。このモジュールには部分的な _form.php があります。この部分には AJAX 関数が含まれています。ここにコード:
<?php use_stylesheets_for_form($form) ?>
<?php use_javascripts_for_form($form) ?>
<?php use_helper('Date') ?>
<!--Aquí el javascript para select dependientes-->
<script type="text/javascript">
$(document).ready(function()
{
$("#conflictos1_id_sector_actividad").change(function()
{
var id_sub = $(this).val();
if(id_sub != '')
{
$.ajax
({
type: "POST",
url: '<?php echo url_for('conflictos/subsector'); ?>'+ '?id=' + id_sub,
cache: false,
data: "id_sub="+ id_sub,
success: function(data)
{
$("#conflictos1_id_subsector_actividad").html(data); // but it does not select the value of dropdown list.
}
});
}
else
{
$("#conflictos1_id_subsector_actividad").html("<option value=''>-- No se ha seleccionado subsector --</option>");
}
return false;
});
});
</script>
<form action="<?php echo url_for('conflictos/'.($form->getObject()->isNew() ? 'create' : 'update').(!$form->getObject()->isNew() ? '?id='.$form->getObject()->getId() : '')) ?>" method="post" <?php $form->isMultipart() and print 'enctype="multipart/form-data" ' ?>>
<?php if (!$form->getObject()->isNew()): ?>
<input type="hidden" name="sf_method" value="put" />
<?php endif; ?>
<table border="0" width="96%">
<tfoot>
<tr>
<td align="center" colspan="4">
<?php echo $form->renderHiddenFields(false) ?>
<a href="<?php echo url_for('conflictos/index') ?>"><button class="btn btn-success" type="button">Listado</button></a>
<?php if (!$form->getObject()->isNew()): ?>
<?php echo link_to('<button class="btn btn-danger" type="button">Borrar</button>', 'conflictos/delete?id='.$form->getObject()->getId(), array('method' => 'delete', 'confirm' => '¿Está seguro?')) ?>
<?php endif; ?>
<!--<input type="submit" value="Save" />-->
<button class="btn btn-primary" type="submit">Grabar</button>
</td>
</tr>
</tfoot>
<tbody>
<?php echo $form->renderGlobalErrors() ?>
<tr>
<td width="24%"><?php echo "<b>Sector Actividad <font color='red'> (*)</b></font><br>" ?>
<?php echo $form['id_sector_actividad']->renderError() ?>
<?php echo $form['id_sector_actividad'] ?>
</td>
<td width="24%"><?php echo "<b>Subsector Actividad</b><br> " ?>
<?php echo $form['id_subsector_actividad']->renderError() ?>
<select name="conflictos1[id_subsector_actividad]" id="conflictos1_id_subsector_actividad">
<option value="" selected="selected">Seleccione sub-sector</option>
</td>
</tbody>
</table>
</form>
新しいレコードを追加するときは AJAX 関数は正常に機能しますが、レコードを編集するときに、select id_subsector_actividad に対応するフィールドが空で表示されます。
私の質問は: Symfony で関数 executeEdit を呼び出すときに、フィールド値「id_subsector_actividad」を表示するには、AJAX 関数で何を変更すればよいですか?