-2

画像の src を更新しようとしていますが、サイトでしか表示されません <img class="imagedisplayor" style="float: none;" alt="" width="200" height="200" src=""/>

コードは次のとおりです。

function ajaxFigure(){
var url = 'index.php?option=com_fabrik&format=raw&view=plugin&task=userAjax&method=imgclasse';
var product = Fabrik.blocks.form_8.formElements.orders___product.getValue();
var update = $('orders___image').firstChild;
new Request({
    url: url,
    data: {
        method: 'imgclasse',
        'product': product
    },
    onComplete: function (r) {
        update.src = 'http://www.youtraining.eu/preview' + r.replace('images/', 'images/');
        document.getElementById('orders___image').innerHTML = '<img class=\'imagedisplayor\' style=\'float:none;\' alt=

\'\'  width=\'200\' height=\'200\'  src="' + r + '">'
    }
}).send();


}

そしてここに私の imgClasse()

function imgclasse() {
$db = JFactory::getDBO();
$IdClasse = JRequest::getVar("product", "");  

$query = "SELECT product_image from products WHERE id=$IdClasse LIMIT 1";
$db->setQuery($query);
$result = $db->loadResult();
echo $result; 


}

すべてが更新されました..私がやろうとしているのは、データベースのエントリであるドロップダウン リストのすべての要素の画像を表示することです。Js と PHP は私が使用できる唯一の方法です。私は CMS 内にいるからです。

var product= Fabrik.blocks.form_8.formElements.orders___product.getValue(); を変更しました。そして今、それは正しい値を返します..しかし問題はまだ残っています

4

2 に答える 2

0

短い答え:

新しい値で画像ソースを更新していません。関数に提供された値で更新しています。また、連結するときは、src 属性に二重引用符を付ける必要があります。

document.getElementById('orders___image').innerHTML = '<img class=\'imagedisplayor\' style=\'float:none;\' alt=\'\'  width=\'200\' height=\'200\'  src="' + r + '">'

提案:

私があなたでこの問題に遭遇した場合、新しいイメージ パスの console.log を実行して、生成されたパスを実際のイメージ パスと比較して検証します。関数に提供されることの価値を知らずに判断するのは困難rです。

もう 1 つ気になる点は、イメージ要素を完全に置き換える必要がないことです。イメージ要素への参照を直接取得し、そのsrc属性を新しい場所に更新すると、よりクリーンになります。繰り返しますが、これ以上の情報がなければ、より具体的なものを提供することは困難です。

于 2013-08-29T18:59:19.527 に答える
0

あなたのコードによると:

onComplete: function (r) {
        update.src = 'http://www.mysite.com/preview' + r.replace('images/', 'images/');
        document.getElementById('orders___image').innerHTML = '<img class=\'imagedisplayor\' style=\'float:none;\' alt=\'\'  width=\'200\' height=\'200\'  src=' + r + '>'
    }

update.src次のように定義されたオブジェクトであると仮定します。

var update= {src:"..."};

したがって、.srcこのオブジェクトのキーに次のように値を渡すと:

update.src = 'http://www.mysite.com/preview' + r.replace('images/', 'images/');

そうして:

document.getElementById('orders___image').innerHTML = '<img class=\'imagedisplayor\' style=\'float:none;\' alt=\'\' width=\'200\' height=\'200\' src=' + r + '>'

の値rは、_update.srcrupdate.src.replace('images/', 'images/')

したがって、次のようになります。

document.getElementById('orders___image').innerHTML = '<img class=\'imagedisplayor\' style=\'float:none;\' alt=\'\' width=\'200\' height=\'200\' src=' + update.src + '>'

r 変数に実際に何かが含まれているかどうか、または次のようにして認識されているかどうかを確認できます。

onComplete: function (r) {

  console.log(r)
//Before running any other code

それが役立つことを願っています!

于 2013-08-29T18:47:45.013 に答える