0

I'm really new to javascript and ajax, and I'm having syntax error problems somewhere in below code. I tried to find it myself but after few days I need to ask for some good soul to help me as this is almost impossible to me.

<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>

I appreciate any help as I don't know why Dreamweaver shows there is an syntax error

Thanks in advance

4

2 に答える 2

0

Dreamweaver は非常に貧弱なエディターなので、エラーは実際のエラーではない可能性があります。これはブラウザーで機能しますか?

それはさておき、次のような行

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

ネストされた引用符が原因で問題が発生している可能性があります...実際には文字列を閉じていないのに、文字列を閉じたと見なします

これは、次の 2 つの方法のいずれかで回避できます。

外側の引用符を二重引用符に置き換えることができます

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

または、その PHP を引き出して 1 か所に配置することもできます。

<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']; ?>', {

これでは、単一の逆コンマを2回使用していますが、これは次のようになるべきだと思います。

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

最初の行で観察したところ、コード全体をチェックしていません。

http://jsfiddle.net/のような高度なエディターやオンライン エディターを使用しないのはなぜですか。

于 2012-10-12T12:38:40.793 に答える