2013-10-12 2 views
-2

У меня возникли проблемы с куском кода PHP/jQuery.PHP, вложенный в jQuery, выполняется только один раз. Я хочу, чтобы он выполнялся каждый раз

Справочная информация: Моя страница 10 дивы на него со своими собственными идентификаторами, под названием Q1 - Q10. При загрузке страницы все divs начинаются на странице как скрытые с помощью команды jQuery hide. В PHP у меня есть массив, называемый «трекер», который имеет перетасованный список из 10 чисел, от 1 до 10, без дублированных чисел. У меня также есть переменная «x», которая используется как индекс. Обе эти переменные были объявлены и заполнены в некоторых PHP в верхней части моей страницы.

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

результата я хотел бы видеть: каждый раз, когда моя кнопка нажата, новый DIV показан пользователю.

<script>$('form').click(function() 
    { 
     <?php 
     echo "$('#Q" . $tracker[$x] . "').show();" ; 
      $x++; 
     ?> 

    }); 
    </script> 

Заранее благодарю за предоставленную помощь.

+6

Вы должны понимать порядок операций. PHP запускает FIRST и делает все вещи PHP, ТОГДА вы получаете HTML/CSS/Javascript, который работает SECOND. Таким образом, вы не можете зацикливать PHP в Javascript. – ohmusama

+1

@ohmusama Я бы сказал более подробно, что это разница в понимании того, что такое PHP, и когда он выполняется, а не в том, что такое Javascript и где он выполняется. Один живет на сервере и обрабатывается там, другой выполняется на клиентском компьютере без каких-либо знаний сервера, с которого он был доставлен. –

+0

@izuriel + 100% да – ohmusama

ответ

3

Просто создать случайное значение в JavaScript на каждый клик -

<script> 
    $('form').click(function() { 
    var randNum = Math.floor(Math.random() * 10) + 1; 
     $('#Q'+randNum).show(); 
    }); 
</script> 

увидеть эту jsFiddle - http://jsfiddle.net/3cHtc/1/


Если вы хотите использовать перемешиваются массив PHP $tracker, то вам необходимо добавить полный порядок массива на ваш javascript, который может быть выполнен с использованием json_encode()

jsFiddle - http://jsfiddle.net/3cHtc/4/

+0

Это не то, что он хочет, он хочет показать divs в линейном порядке – ohmusama

+0

@ohmusama 'показывает первый ** случайный ** div пользователю ... каждый раз, когда меня нажимают на кнопку , ** для пользователя отображается новый div **. OP сказал ** random **, а затем ** новый ** div, а не следующий/линейный порядок – Sean

+0

у него есть * shuffled * php массив со случайными числами, ему нужна помощь в открытии следующего div. – ohmusama

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