2010-08-21 3 views
2

Это вопрос из двух частей, но я хочу убедиться, что первое действительно достижимо.Можете ли вы запросить/получить переменные из img src?

Во-первых, можете ли вы получить переменные доступа, заданные img src? Я пытаюсь jQuery, включая MySQL UPDATE и т. Д., Но это мне нужно было убедиться, что это сработает?

<a href="#" class="chnge"><img src="filename.jpg?id=1&open=1" /></a> 

Jquery бы тогда что-то похожее на:

 $("img#chnge").click(function() { 

     var id  = $('#id').attr('value'); 
     var open = $('#open').attr('value'); 
      $.ajax({ 
       type: "POST", 
       url: "update.php", 
       data: "id="+ id +"& open="+ open, 
       success: function(){ 
        $('img#chnge').fadeTo('slow',0.4); 

       } 
      }); 
     return false; 
     }); 

Я надеюсь, что это очевидно, в основном, у меня есть изображение, если это «открыто» установлен в 1, при клике изменения непрозрачности, но он также отправит запрос на мой update.php.

Я знаю, где ошибки в этой форме, я просто не знаю, как их исправить. # 1 = переменные в img src (я не знаю, могу ли я поместить их в href вместо?), А второй - $ ('# id') и $ ('# open'), я не думаю, что это правильно, но я не знаю, как их изменить.

Любая помощь будет высоко оценена.

Phillip.

UPDATE: После прочтения Otars ответ, я думал, что лучше добавить полный код повторно: как изображения должны быть там, где они ...

благодарственные. Поскольку эти изображения генерируются через цикл for() (php), это повлияет на то, как этот код будет работать?

<?php 
$query = mysql_query("SELECT * FROM catalogue"); 
$num = mysql_num_rows($query); 

for ($x=1;$x<=$num;$x++) { 

    $row = mysql_fetch_row($query); 

    ?> 

    <a href="#" id="chngeHref" /><img src="<?php echo $row[2]; ?>?id=<?php echo $row[0]; ?>&open=<?php echo $row[1]; ?>" id="chnge" /></a> 

<?php 

    /* row[0] = id 
    row[1] = open (1 or 0) 
    row[2] = image url 
    */ 

    } 

?> 

ответ

2

В любом случае ваш образ должен быть PHP скрипт ...

Pass GET параметров к ней, делать все, что вы хотите в сценарии, а затем выводить изображение как это:

Скажем файл называется image.php

<?php 

    $par = $_GET['test']; 

    // Do some PHP related job here 


    // Load the image 
    header('Content-Type: image/jpeg'); 
    header('Location: /path/to/your/image.jpg'); 

?> 

Затем использовать его как это: <img src="image.php?test=value">

Сначала он вызовет скрипт PHP, а затем отобразит изображение.

+0

Благодарю вас, это позволило мне добавить переменные к изображению. Я ценю вашу помощь. –

+0

Что делать, если вам нужно 10 изображений из файла PHP? (какие изменения вы должны применить к скрипту PHP и JQuery, чтобы иметь возможность получать 10 изображений из файла php?) – Shadi

+0

@Shadi Pass URL изображения как параметр скрипта '' и изменить заголовок перенаправления следующим образом: 'header ('Местоположение: '. $ _GET [' img ']); '. Пожалуйста, убедитесь, что вы проверяете/secure/escape пройденный параметр ... – Otar

0

Извините, я не совсем понимаю, что вы пытаетесь сделать, но подумайте, что это может помочь. Вы можете сохранить изображение «открыто» как переменную внутри $ (function() {..}). Затем вы сможете получить и установить значение переменной из вашего события click.

$(function() { 

    var open = false; // store the image state in the closure not global 
    var id = .. 

    $(".chnge img").click(function() { 
     if (!open) { 
      // fade-in, post to server or whatever 

      $.ajax({ 
       type: "POST", 
       url: "update.php", 
       data: "id="+ id +"& open="+ open, 
       success: function(){ 
        // handle response here. 
        // you can still access the open variable here! 
       } 
      } 

      open = true; // want to update open? 
     } 
    }); 
}); 
+0

Я не понимаю язык, чтобы узнать, будет ли это работать ... ха-ха. Или как его реализовать. Благодарю за ваш вклад! : D –

+0

не могли бы вы объяснить свой ответ еще немного? например, что такое контент php-файла и успех: function()? Заранее спасибо. – Shadi

Смежные вопросы