0

我真的是 javascript 和 ajax 的新手,我在下面的代码中遇到了语法错误问题。我试图自己找到它,但几天后我需要寻求一些好的灵魂来帮助我,因为这对我来说几乎是不可能的。

<script type="text/javascript">
new AjaxUpload('#button-option-<?php echo $option['product_option_id']; ?>', {
    action: 'index.php?route=product/product/upload',
    name: 'file',
    autoSubmit: true,
    responseType: 'json',
    onSubmit: function(file, extension) {
        $('#button-option-<?php echo $option['product_option_id']; ?>').after('<img src="catalog/view/theme/moshi/image/loading.gif" class="loading" style="padding-left: 5px;" />');
        $('#button-option-<?php echo $option['product_option_id']; ?>').attr('disabled', true);
    },
    onComplete: function(file, json) {
        $('#button-option-<?php echo $option['product_option_id']; ?>').attr('disabled', false);

    $('.error').remove();

    if (json['success']) {
        alert(json['success']);

        $('input[name=\'option[<?php echo $option['product_option_id']; ?>]\']').attr('value', json['file']);
    }

    if (json['error']) {
        $('#option-<?php echo $option['product_option_id']; 

?>').after('<span class="error">' + json['error'] + '</span>');
        }

        $('.loading').remove(); 
    }
});
</script>

感谢任何帮助,因为我不知道为什么 Dreamweaver 显示存在语法错误

提前致谢

4

2 回答 2

0

Dreamweaver 是一个非常糟糕的编辑器,因此错误可能不是真正的错误 - 这在浏览器中是否有效?

除此之外,线条像

$('#button-option-<?php echo $option['product_option_id']; ?>')

由于嵌套的引号可能会导致它出现问题......它认为你已经关闭了一个字符串,而实际上你并没有。

您可以通过以下两种方式之一解决此问题。

您可以用双引号替换外引号

$("#button-option-<?php echo $option['product_option_id']; ?>")

或者,您可以将 PHP 取出并放在一个地方:

<script type="text/javascript">
var productOptionId = <?php echo $option['product_option_id']; ?>;
new AjaxUpload('#button-option-'+productOptionId , {
    action: 'index.php?route=product/product/upload',
    name: 'file',
    autoSubmit: true,
    responseType: 'json',
    onSubmit: function(file, extension) {
        $('#button-option-'+productOptionId).after('<img src="catalog/view/theme/moshi/image/loading.gif" class="loading" style="padding-left: 5px;" />');
        $('#button-option-'+productOptionId).attr('disabled', true);
    },
    onComplete: function(file, json) {
        $('#button-option-'+productOptionId).attr('disabled', false);

    $('.error').remove();

    if (json['success']) {
        alert(json['success']);

        $('input[name=\'option['+productOptionId+'\']').attr('value', json['file']);
    }

    if (json['error']) {
        $('#option-'+productOptionId).after('<span class="error">' + json['error'] + '</span>');
        }

        $('.loading').remove(); 
    }
});
</script>

最后,可能只是 Dreamweaver 不喜欢您将 JavaScript 和 PHP 混合使用。

于 2012-10-12T12:45:46.027 回答
-1

我在第一行看到语法错误,

new AjaxUpload('#button-option-<?php echo $option['product_option_id']; ?>', {

在这个你使用单引号两次,我认为这应该是这样的,

new AjaxUpload('#button-option-<?php echo $option[' + product_option_id + ']; ?>', {

我只是在第一行观察到,我没有检查整个代码。

为什么不使用一些高级编辑器或在线编辑器,例如http://jsfiddle.net/

于 2012-10-12T12:38:40.793 回答