ファイアバグにエラーがあります:
SyntaxError: missing ] after element list
var o99_images = [ C:\Documents and Settings\XXXX\Desktop\xampp\htdocs\www.s
--------------------^
問題の変数はパスの配列(ローカル)です。配列の例は次のようになります。
var o99_images = [C:\Documents and Settings\XX\XX\xampp\htdocs\XX\XX\uploads\images_to_post\2000501.freddy.lulu.milano.jpg,C:\Documents and Settings\XX\XX\xampp\htdocs\XX\XX\uploads\images_to_post\4147941_460s.jpg,C:\Documents and Settings\XX\XX\xampp\htdocs\XX\XX\uploads\images_to_post\732331_26687367.jpg];
私は決してjavascriptマスターではありませんが、問題は文字列としてのパス自体(おそらく:
?)であると思われます。これは、数値の配列のみで同じことを行う場合(たとえばvar o99_images = [12,14,15,18]
、問題がないため)です。
これはJSON関数です:
function O99_Do_Action( id ) {
$.ajax({
type: 'POST',
url: ajaxurl,
data: { action: "ajaxresponse", id: id },
success: function( response ) {
if ( response.success ) {
O99_Do_ActionUpdateStatus( id, true, response );
}
else {
O99_Do_ActionUpdateStatus( id, false, response );
}
if ( o99_images.length && o99_continue ) {
O99_Do_Action( o99_images.shift() );
}
else {
O99_Do_ActionFinishUp();
}
},
error: function( response ) {
O99_Do_ActionUpdateStatus( id, false, response );
if ( o99_images.length && o99_continue ) {
O99_Do_Action( o99_images.shift() );
}
else {
O99_Do_ActionFinishUp();
}
}
});
}
そしてその前に、vars:
jQuery(document).ready(function($){
var i;
var o99_images = [<?php echo $ids; ?>];
var o99_total = o99_images.length;
var o99_count = 1;
//... continue vars and function
ご覧のvar
とおり、問題はphpで生成されています。(implode()文字列と,
)
それで、パス文字列自体が問題ですか?もしそうなら、どのようにしてそのような変数へのパスを渡すことができますか?
解決済み:
@Aatif Farooqのおかげで、私は正しい方向に進んでくれました。答えは、クォーア"
とエスケープの問題の両方を処理するjson_encode()でした//
。
addslashes()
php関数を検索しているときに、 json_encode()
..を見つけました。その間に、@slashingweaponがそれを正しく取得しました..
echo json_encode($ids);