Dwa obrazy, umieszczone przez PHP:

echo "<img onclick='test()' src=\"/img/Sun.png."\">";
echo "<img onclick='test()' src=\"/img/Moon.png."\">";
$x = "Sun.png";

Js:

function test(){
if (clicked_image_name == $x) ...do something

Jak więc uzyskać nazwę klikniętego obrazu i jak porównać go z zmienną PHP?

2
Alegro 10 sierpień 2012, 12:45

4 odpowiedzi

Najlepsza odpowiedź

Umieść wartość $ X w ukrytym polu. Byłbyś w stanie wziąć wartość, a następnie z JavaScript

1
Rafael Osuna Dominguez 10 sierpień 2012, 09:05

Możesz zrobić jedną rzecz,

Możesz zadeklarować jedną zmienną JavaScript i jej wartość przez kod PHP: -

var imageName = "<?php echo "Sun.png"?>";

I możesz zmodyfikować kod PHP, aby przekazać image Nazwa SRC jako zmienna:

echo "<img onclick='test("Sun.png")' src=\"/img/Sun.png."\">";

A następnie w funkcji testu Javscription () możesz sprawdzić jego wartość

function test(imageSrcName)
{
   if(imageSrcName == imageName)
   {
       alert("both image name are same");
   }
   else
   {
       alert("both image name are different");
   }
}
1
Durgaprasad Budhwani 10 sierpień 2012, 08:53

Możesz po prostu dodać argument do połączenia testowego () na stronę PHP, jak:

echo "<img onclick='test(\"$mysunvariable\")'  src=\"/img/Sun.png."\">";
echo "<img onclick='test(\"$mymoonvariable\")' src=\"/img/Moon.png."\">";

Iw twoim JS:

function test(name){
   if(name == 'Sun.jpg'){
      do something
   }
   other cases..
}

Alternatywnie, jeśli naprawdę musisz porównać z dynamicznymi zmiennymi PHP, należy napisać usługę PHP i zadzwoń do nim przez ASync Get lub Post (na przykład za pomocą AJAX).

W takim przypadku, aby uzyskać nazwę obrazu, możesz dodać parametr nazwy do każdego z twoich obrazów w takiej stronie PHP:

echo "<img onclick='test(this)' name=\"sun\"  src=\"/img/Sun.png."\">";
echo "<img onclick='test(this)' name=\"moon\" src=\"/img/Moon.png."\">";

A następnie zmodyfikuj funkcję JS jak poniżej:

function test(img){
   var myname = img.name;
   here you do your async stuff
...
}
1
Giova 10 sierpień 2012, 09:24
echo "<img onclick='test(this.src)' src=\"/img/Sun.png."\">";
echo "<img onclick='test(this.src)' src=\"/img/Moon.png."\">";

Js:

function test(img_src){
var clicked_image_name = img_src.substring(5);
if (clicked_image_name == '<?php echo $x;?>') ...do something

Powyższe fragmenty kodu zrobią Twoją pracę.
dzięki

1
Tarun 10 sierpień 2012, 09:27