Тег Javascript не закрывается внутри цикла php - PullRequest
0 голосов
/ 28 февраля 2012

Это фрагмент кода, который не работает правильно. Закрывающий тег </script> javascript по некоторым причинам не распознается. Javascript предназначен для установки флажка «все», который будет снимать или снимать все флажки, созданные с каждой формой Каждая форма является отдельной, поэтому я попытался уменьшить свой код, включив в него цикл php. У меня была работающая версия этого кода, но она включала повторение одного и того же образца javascript несколько раз. Если вы можете придумать способ сделать это по-другому, не стесняйтесь улучшать код. На данный момент, хотя все, что мне нужно выяснить, почему закрывающий тег javascript не работает.

foreach($words as $word){
    $i++;
    $qry = "Select * FROM subs WHERE type = '$word'"; 
    $q = mysql_query($qry) or die(mysql_error()); 
?>

<script type="text/javascript">
    checked=false;

    function checkedAll<?=$i?>(frm<?=$i?>) 
    { 
        var aa= document.getElementById('frm<?=$i?>'); 
        if(checked == false) {
            checked = true
        } 
        else{
            checked = false
        } 

        for(var i =0; i < aa.elements.length; i++) {
            aa.elements[i].checked = checked;
        }
    } 
    </script>
<?
    echo '<form action="attacher.php" method="POST" id="frm'.$i.'" >';
    echo '<input type="hidden" name="template" value="16">';
    echo "<table border='1' cellpadding='10'>";
    echo "<tr><td colspan=4 align='center'><strong>$word</strong></td> <td><input type='submit' value='Add to Template'></td></tr>";
    echo "<tr><th><input type='checkbox' name='checkall".$i."' onclick='checkedAll".$i."'(frm".$i.");'></th><th colspan=3> CONTROLS</th> <th>$word's</th> </tr>";

    // loop through results of database query, displaying them in the table
    while($row = mysql_fetch_array($q)) {   
        // echo out the contents of each row into  table
        echo "<tr>";
        echo '<td><input type="checkbox" name="word[]" value="'.$row['id'].'"</td>';
        echo '<td><a href="edit.php?id=' . $row['id'] . '">Edit</a></td>';
        echo '<td><a href="delete.php?id=' . $row['id'] . '">Delete</a></td>';
        echo '<td><a href="attacher.php?template=16&word=' . $row['id'] . '">Attach</a></td>';
        echo '<td>' . $row['word'] . '</td>';
        echo "</tr>";
    }
    // close table>
    echo "</table><br>";
    echo '</form>';
}
?>

1 Ответ

0 голосов
/ 28 февраля 2012

Я должен упомянуть, что соглашение о коде, который вы используете (даже если он один - но я сомневаюсь в этом) не очень аккуратно.

Почему бы вам не использовать только некоторые безопасные варианты? Как насчет этого:

<?php
  //here what you want to do first    
?>

<?php
  echo '<script type="text/javascript">
          ....
        </script>';
?>

<?php
   echo 'rest of your code';
?>

Я действительно не рекомендую использовать ярлыки в любом случае ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...