我在控制器上有一个codeigniter函数,它可以获取并检查我的模板的图像。
我放了一个id ="模板"在我的缩略图bootstrap div id模板与我的脚本代码一起使用之后。
目前,当我选择主题时,我会遇到一个萤火虫错误
错误弹出
SyntaxError: missing ; before statement
OK
{"image":"<img src=\\\"http:\/\/localhost\/codeigniter\/codeigniter-cms\/image\/templates\/default.png\\\" alt=\\\"\\\"\/>"}
控制器图像功能
public function template() {
$this->load->helper('html');
if (file_exists(FCPATH . 'image/templates/' . $this->configs->get('config_template') . '.png') == FALSE) {
$img = addslashes(img('image/no_image.png'));
echo json_encode(array('image'=>$img));
} else {
if($this->input->post('config_template') !== FALSE) {
$img = addslashes(img('image/templates/' . basename($this->input->post('config_template')) . '.png'));
echo json_encode(array('image'=>$img));
}
}
}
查看
<form action="<?php echo $action; ?>" method="post" enctype="multipart/form-data" id="form-setting" class="form-horizontal">
<div class="form-group">
<label class="col-sm-2 control-label" for="input-template"><?php echo $entry_template; ?></label>
<div class="col-sm-10">
<select name="config_template" id="input-template" class="form-control">
<?php foreach ($templates as $template) { ?>
<?php if ($template == $config_template) { ?>
<option value="<?php echo $template; ?>" selected="selected"><?php echo $template; ?></option>
<?php } else { ?>
<option value="<?php echo $template; ?>"><?php echo $template; ?></option>
<?php } ?>
<?php } ?>
</select>
<div class="form-group">
<div class="col-lg-4">
<div class="img-thumbnail">
<div id="template"></div>
</div>
</div>
</div>
</form>
<script>
console.log('Jquery is working');
$('select[name="config_template"]').on('change', function () {
var template_name;
template_name = encodeURIComponent(this.value);
$.ajax({
type: 'POST',
dataType: 'jsonp',
url: '<?=base_url('admin/setting/template');?>' + '/',
data: { config_template: template_name
},
complete: function () {
$('.fa-spin').remove();
},
success: function (data) {
$('.fa-spin').remove();
$('#template').html(data.image);
},
error: function (xhr, ajaxOptions, thrownError) {
alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText);
}
});
})
</script>
答案 0 :(得分:0)
发现问题是它是addslashes
旧
public function template() {
$this->load->helper('html');
if (file_exists(FCPATH . 'image/templates/' . $this->configs->get('config_template') . '.png') == FALSE) {
$img = addslashes(img('image/no_image.png'));
echo json_encode(array('image'=>$img));
} else {
if($this->input->post('config_template') !== FALSE) {
$img = addslashes(img('image/templates/' . basename($this->input->post('config_template')) . '.png'));
echo json_encode(array('image'=>$img));
}
}
}
新
public function template() {
$this->load->helper('html');
if (file_exists(FCPATH . 'image/templates/' . $this->configs->get('config_template') . '.png') == FALSE) {
$img = img('image/no_image.png');
echo json_encode(array('image'=>$img));
}else
{
if($this->input->post('config_template') !== FALSE)
{
$img = img('image/templates/' . $this->input->post('config_template') . '.png');
echo json_encode(array('image'=>$img));
}
}
}
答案 1 :(得分:0)
dataType: 'jsonp',
更改为dataType: 'json',
\
个字符并将其设置错误。删除addslashes
函数的所有用法。 encode_json
将完成你需要的所有逃脱。