Javascript не будет работать на странице PHP - PullRequest
1 голос
/ 25 апреля 2009

У меня есть страница php, и у меня есть некоторый код javascript, чтобы иметь промежуточную сумму некоторых полей. Я довольно хорошо скопировал из рабочего теста, который у меня был, и изменил код, чтобы он подходил. ну, это не работает, и я не могу работать. Есть ли что-то явно очевидное, чего мне не хватает, или есть какая-то другая причина, по которой он не работает?

 <?php

 //server connection info

 ?>
 <html>
 <head>
 <title>Survey</title>
 <link rel="stylesheet" type="text/css" href="styles.css" />

       <script type="text/javascript">
           function Total()
           {

               var a=document.getElementById("a").value;
               var b=document.getElementById("b").value;
               var c=document.getElementById("c").value;
               var d=document.getElementById("d").value;

               a=parseInt(a);
               b=parseInt(b);
               c=parseInt(c);      

               var total=a+b+c;



               document.getElementById("total").value=total;


           }


       </script>


 </head>


 <body>
 <h1>QUALITY OF LABOR SURVEY</h1>
 <p />
 <h2>ABOUT YOUR COMPANY</h2>


 <div class="Wrapper">

     <form id="Main" method="post" action="Process.php">

         <div class="Question">
              1. In what state and county is your business located? (click below)
         </div>
         <div class='answer'>
         <?php
             $tsql = "select
                StateCountyID,
                State,
                County
                from dbo.StateCounty
                where State='MO'
                      and Active='True'
                order by State";

             $tsql2 = "select
                StateCountyID,
                State,
                County
                from dbo.StateCounty
                where State='IL'
                      and Active='True'
                order by State";


             /* Execute the query. */
             $stmt = sqlsrv_query( $conn, $tsql);
             if ( $stmt )
             {

                 echo "<span><select name='ListMO'>";
                 echo "<option value='0'>MO-County</option>";

                 while( $row = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_NUMERIC))
                 {

                     echo "<option value='".$row[0]."'>";
                     echo $row[2];
                     echo "</option>";

                 }

                 echo "</select></span>";

             }
             else
             {
                  echo "Error in statement execution.\n";
                  die( print_r( sqlsrv_errors(), true));
             }


             $stmt2 = sqlsrv_query( $conn, $tsql2);
             if ( $stmt2 )
             {

                 echo "<span><select name='ListIL'>";
                 echo "<option value='0'>IL-County</option>";

                 while( $row = sqlsrv_fetch_array( $stmt2, SQLSRV_FETCH_NUMERIC))
                 {
                     echo "<option value='".$row[0]."'>";
                     echo $row[2];
                     echo "</option>";

                 }

                 echo "</select></span>";

             }
             else
             {
                 echo "Error in statement execution.\n";
                 die( print_r( sqlsrv_errors(), true));
             }
        ?>
           </div>



         <table width="700px">
           <tr>
             <td style="font-size: 1.2em; font-weight: bold;">
                 ABOUT YOUR EMPLOYMENT
             </td>
             <td style="font-weight: bold;">
                 (Exclude Temporary Employees Throughout Survey)

             </td>
           </tr>

         </table>

         <p />
         <b>Please estimate the following:</b>







         <p />




         <div class="Question">
              4. Number of Full-Time Hourly Employees (Eligible for Full-Time Benefits)
         </div>

         <div class="Answer">
              <input type="text" id="a" value="0" onchange="Total();" />
         </div>

         <div class="Question">
              5. Number of Part-Time Hourly Employees(Not Eligible for Full-Time Benefits)
         </div>

         <div class="Answer">
              <input type="text" id="b" value="0" onchange="Total();" />
         </div>

         <div class="Question">
              6. Salaried Employees
         </div>

         <div class="Answer">
              <input type="text" id="c" value="0" onchange="Total();" />
         </div>





         <div class="Question">
              7. Is this your current number of employees?  If not, change responses to 4, 5, and 6.
         </div>

         <div class="Answer">
              <input type="text" id="total" value="0" onchange="Total();" />
         </div>

Ответы [ 5 ]

8 голосов
/ 25 апреля 2009
var d=document.getElementById("d").value;

выдает ошибку, потому что у вас нет элемента с id="d"

4 голосов
/ 25 апреля 2009

Я также хотел бы дать несколько советов по улучшению вашего кода.

Отладка JavaScript

  • расширение firefox firebug абсолютно необходим для отладки вашего javascript.

https://addons.mozilla.org/en-US/firefox/addon/1843

Написание JavaScript

  • Поместите javascript в отдельный файл, например: myjavascript.js, и включите этот файл со своей html-страницы. Это уменьшит вес вашей страницы, и вы получите более четкое разделение кода.
  • Используйте инфраструктуру javascript, чтобы помочь вам создать лучший javascript, например, jquery или yui (Библиотека пользовательского интерфейса Yahoo!).

http://jquery.com/
http://developer.yahoo.com/yui/

Написание PHP

  • Лучше разделить PHP / HTML, поместив PHP в отдельный файл и включив его. Например:

http://toys.lerdorf.com/archives/38-The-no-framework-PHP-MVC-framework.html/

1 голос
/ 25 апреля 2009

Несколько вещей для проверки.

  • Разве это не работает во всех браузерах?
  • Подтвердили ли вы, что точный код работает в отдельном файле
  • Вы пытались переместить скрипт в конец страницы?

Вы также должны использовать отладчик в Firefox или даже найти инструмент, подобный Firebug для Firefox. Очень помогает в поиске подобных проблем.

0 голосов
/ 25 апреля 2009

У вас нет элемента "d" в вашем HTML. Если вы закомментируете строку:

var d=document.getElementById("d").value;

Должно работать нормально

0 голосов
/ 25 апреля 2009

Пожалуйста, попробуйте сократить ваш вопрос! Изолировать это!

Я также настоятельно рекомендую использовать Firebug

Вы найдете ответ в кратчайшие сроки:)

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