次のエラーが発生しましたが、修正方法がわかりません。私はcodeigniterフレームワークを使用しており、管理サイトを構築しています。こちら側には管理するセクションがいくつかあり、各セクションでアイテムを作成、編集、翻訳、または削除できます。これらのアクションのいずれかを実行するたびに、Ajaxを使用してフォームを取得し、それをjqueryダイアログにロードしますが、ダイアログ内にjavascriptを含めたい場合は、合計3回ロードされ、過去3回のダイアログのヘッダー。フォーム内のjavascriptコードを削除すると、1回だけ完全に読み込まれます。
たとえば、これは私のニュースフォームです。
<div id="create-form">
<?=form_open('news/'.$action); ?>
<?php $sindex = 0?>
<table class="table-content-right width800px" border="0" cellpadding="0" cellspacing="0">
<tr class="not-for-edit">
<td class="padding-10px" valign="top">
<span>SELECT LANG:</span>
</td>
<td class="padding-10px">
<select id="cmbTextTranslate" name="cmbTextTranslate">
<?php foreach($languages as $language) :?>
<?php if (($language->active == 1) && ($language->oid != $this->session->userdata('lang'))):?>
<option value='<?= $language->oid?>'><?= strtoupper($language->oid)?></option>
<?php endif;?>
<?php endforeach;?>
</select>
<img class="imgLangTranslate" src="" />
</td>
</tr>
<tr class="color-grey-soft-light color-black currentlang" valign="top">
<td class="padding-10px">TITLE: <img class="not-for-edit" src="<?=base_url()?>img/flags/en.gif" /></td>
<td class="padding-10px"><input id="title_en" name="title_en" class="input-border" type="text" value="<?= (isset($new) ? $new->title_en : "") ?>" /></td>
<td class="padding-10px"><span sindex="<?= $sindex++;?>" class="color-error"></span></td>
</tr>
<?php foreach($languages as $language) :?>
<?php if (($language->active == 1) && ($language->oid != $this->session->userdata('lang'))):?>
<tr class="not-for-edit" translateTo="<?= $language->oid?>" valign="top">
<td class="padding-10px" valign="top">TITLE_<?= $language->oid?>: <img class="translateToFlag" src="" /></td>
<td class="padding-10px" valign="top"><input class="input-border input-translate" id="title_<?= $language->oid?>" name="title_<?= $language->oid?>" type="text" value="<?= (isset($new) ? $new->title_es : "") ?>"/></td>
</tr>
<?php endif;?>
<?php endforeach;?>
<tr class="currentlang" valign="top"><td class="padding-10px">BODY: <img class="not-for-edit" src="<?=base_url()?>img/flags/en.gif" /></td>
<td id="textarea-td" class="padding-10px">
<textarea rows="5" id="body_en" class="input-border" name="body_en"><?= (isset($new) ? $new->body_en : "") ?></textarea>
</td>
<td class="padding-10px"><span sindex="<?=$sindex++;?>" class="color-error"></span></td>
</tr>
<?php foreach($languages as $language) :?>
<?php if (($language->active == 1) && ($language->oid != $this->session->userdata('lang'))):?>
<tr class="not-for-edit" translateTo="<?= $language->oid?>" valign="top">
<td class="padding-10px" valign="top">BODY_<?= $language->oid?>: <img class="translateToFlag" src="" /></td>
<td id="textarea-td_<?=$language->oid?>" class="padding-10px">
<textarea rows="5" id="body_<?=$language->oid?>" class="input-border" name="body_<?=$language->oid?>"><?= (isset($new) ? $new->body_es : "") ?></textarea>
</td>
</tr>
<?php endif;?>
<?php endforeach;?>
</table>
<input id="oid" name="oid" type="hidden" value="<?= (isset($new) ? $new->oid : "") ?>" />
</form>
そして、ファイルの最後に次のブロックを追加すると、エラーが発生します。
<script type="text/javascript">
空であるか、内部にコードが入力されているかは関係ありません。常に同じエラーが発生します。
これは私がそのフォームを呼び出すために持っているコードです:
$("#btnCreate").click(function(){
$.ajax({
type: 'GET',
dataType: 'html',
cache: false,
url: 'news/load_form/create',
success: function(data) {
//$(data).dialog(config.dialog);
$(data).dialog($.extend(config.dialog,
{title: 'CREATE NEW',
open: function() {
alert('cuantas veces');
},
close: function() {
$(this).dialog('destroy');
},
buttons: [
{ text:'CREATE',
click: function() {
if ($("form").submit() === true)
$(this).dialog("close");
}
},
{ text: 'RESET',
click: function() {
$("#create-form input[type='text']").val("");
}
},
{ text: 'CANCEL',
click: function() {
$(this).dialog("close");
}
}
]
})
);
$('.not-for-edit').hide();
tinyMCE.init($.extend(config.tinyMCE.writtable,
{oninit: function(){
setTimeout(function(){
tinyMCE.execCommand('mceRemoveControl', true, 'body_<?= $this->session->userdata('lang')?>');
tinyMCE.execCommand('mceAddControl', true, 'body_<?= $this->session->userdata('lang')?>');
}, 1000)}
})
);
}
});
});
私はその問題を本当に理解していません、それは私には正しいようです。前もって感謝します。