2014-10-15 3 views
-1

У меня есть эта функция jQuery, которая умножает вход пользователя на заданное значение и выводит результат в том же текстовом поле. Но мой участник группы добавил цикл и заставил текстовые поля содержать массив информации. Он внезапно прекратил работать. Это цикл, который препятствует выполнению функции?Пока Loop вмешивается в jQuery

<?php 
    if(!isset($_POST['submit'])){ 
    $con=mysql_connect('localhost', 'root', '') or die ("Unable to connect!"); 
    mysql_select_db('SoftEng') or die ("Unable to select database"); 
    $query="SELECT * FROM login WHERE AccountType='Student' ORDER by Lname ASC"; 
    $result=mysql_query($query) or die ("Unable to execute query" .mysql_error()); 
?> 

<?php 
    while($row=mysql_fetch_object($result)){ 
?> 

<tr><?php echo "<input type=hidden name=stud[] value=$row->ID>"?> 
    <td style="vertical-align:middle" class="text-justify"><i class="fa fa-fw fa-user"></i> <?php echo $row->Lname.", ".$row->Fname;?></td> 
    <td style="vertical-align:middle"> 
      <input type="text" name="quiz[]" id="quiz" size="8" class="text-center"> 
      <script> 
        $('#quiz').on('change', function(){ 
          $(this).val($(this).val() * .10); 
        compute(); 
        }); 
      </script> 
    </td> 

    <td style="vertical-align:middle"> 
      <input type="text" name="recitation[]" id="recitation" size="8" class="text-center"> 
      <script> 
        $('#recitation').on('change', function(){ 
          $(this).val($(this).val() * .05); 
        compute(); 
        }); 
      </script> 
    </td> 
+0

Оставьте свой код пожалуйста. – j08691

+0

Пожалуйста, [не используйте 'mysql_ *' функции] (http://stackoverflow.com/questions/12859942/why-shouldnt-i-use-mysql-functions-in-php), они больше не поддерживаются и [официально устарели] (https://wiki.php.net/rfc/mysql_deprecation). Узнайте о [подготовленных заявлениях] (http://en.wikipedia.org/wiki/Prepared_statement) и используйте [PDO] (http://us1.php.net/pdo) или [MySQLi] (http: // us1.php.net/mysqli). [Эта статья] (http://php.net/manual/en/mysqlinfo.api.choosing.php) поможет вам решить. –

ответ

2
<input type="text" name="quiz[]" id="quiz" size="8" class="text-center"> 
            ^^^^^^^^ 

DOM идентификаторы должны быть уникальными по всему документу. Если вы добавляете несколько этих входов, тогда у вас будут дубликаты идентификаторов. Вместо этого переключитесь на использование класса, например.

<input class="quiz" ...> 

$('.quiz').on(.....); 
+0

Изменил все ID. Все еще не работает. :/ –

+0

Вы также выплевываете свой код jquery внутри цикла, поэтому, если у вас есть 10 записей базы данных, то вы также делаете '.on()' 10 раз. –

+0

Итак, я вытащу их из петли? Но будет затронута множественная вставка. –

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