Отключение текстового поля с помощью Javascript, когда значение в раскрывающемся списке взято из mysql

У меня есть простой скрипт в HTML, использующий выпадающее меню. Когда выбрано значение 1, пользователь может писать в текстовом поле, если выбрано значение 2, оно отключает текстовое поле.

Однако я изменил значения раскрывающегося меню, так что одно значение было из таблицы mysql (с использованием PHP), а другое осталось «значение параметра = «1». Но теперь ни одно текстовое поле не отключено. Ниже приведен код.

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

      if (document.form.selmenu.value == <?php echo $id; ?>) {
      document.form.txtField.disabled=true;
          //      return false;  // not sure this line is needed
       } else {
      document.form.txtField.disabled=false;
          //      return false;  // not sure this line is needed
       }

} `

И раздел PHP

if(mysql_num_rows($SQL) == 1)
{
echo "<select name='selmenu' onChange='findselected()'>"; 
echo "<label>TCA_Subject</label>";

while ($row=mysql_fetch_array($SQL)) { 
    echo "<option value='$id'>$thing</option>";
       echo "<option value='2'>Choice 2</option>"; 
    } 

    }
   echo "<option value=$userid>'Choice 1'</option>";
?>  <option value='2'>Choice 2</option>";
</select> 

Я попытался вывести значение второго параметра из цикла, поместив его в html, отредактировав переменную в функции javascript. В PHP нет ошибки, поскольку он извлекает правильные результаты и отображает их, но текстовое поле не отключается.

Кто-нибудь знает о возможном решении?

Спасибо

Внесены изменения для проверки простой переменной php

<script type="text/javascript">
    function findselected() { 
   if (document.form.selmenu.value == <?php echo $wah;?>) {
      document.form.txtField.disabled=true;
//      return false;  // not sure this line is needed
   } else {
      document.form.txtField.disabled=false;
//      return false;  // not sure this line is needed
   }
} 
</script>

<?php $wah = 'hello'; 
echo $wah;
?>

<form action="dump.php" method="POST" name="form"> 
<select name="selmenu" onChange="findselected()"> 
<option value="1">Choice 1</option> 
<option value="<?php $wah;?>">Choice 2</option> 
</select> 

person SteveJ313    schedule 14.05.2010    source источник
comment
Этот PHP выглядит так, как будто он генерирует плохой HTML, вы уверены, что вышесказанное верно?   -  person Jonathan    schedule 14.05.2010
comment
Спасибо за ответ, я попытался изменить сценарий, чтобы он работал с переменной, созданной выше, но это не имело ни малейшего значения. Я упускаю что-то очевидное?   -  person SteveJ313    schedule 14.05.2010


Ответы (2)


Вам не хватает echo в HTML и некоторых кавычек вокруг echo в javascript.

Кроме того, $wah используется перед инициализацией.

person Tgr    schedule 14.05.2010
comment
Спасибо за ответ, я попытался изменить переменную PHP в javascript на ‹?php echo '$wah';?› и когда это не сработало на ‹?php echo $wah;?› Оба раза с параметром ‹option value=‹ ?php echo $wah;?››Выбор 2‹/вариант› - person SteveJ313; 14.05.2010
comment
Извините за двойной пост, я попытался объявить переменную PHP над функцией JavaScript, но все равно не повезло. iv даже переместил функцию под форму и она все равно не работает - person SteveJ313; 14.05.2010

Попробуйте это:

<?php $wah = 'hello'; 
  echo $wah;
?>
<script type="text/javascript">
  function findselected() { 
    if (document.form.selmenu.value == '<?php echo $wah;?>') {
      document.form.txtField.disabled=true;
      // return false;  // not sure this line is needed
     } else {
       document.form.txtField.disabled=false;
      // return false;  // not sure this line is needed
     }
  } 
</script>

<form action="dump.php" method="POST" name="form"> 
<select name="selmenu" onChange="findselected()"> 
  <option value="1">Choice 1</option> 
  <option value="<?php echo $wah;?>">Choice 2</option> 
</select> 
person Shiki    schedule 14.05.2010
comment
Спасибо. Он работает с предустановленной переменной, но если я попытаюсь вызвать базу данных и заполнить ею значение параметра, вместо $wah это не сработает. Я предполагаю, что id нужно сделать вызов базы данных в начале скрипта и сохранить результат переменных, прежде чем помещать его в значение параметра. Спасибо за работу - person SteveJ313; 14.05.2010
comment
Я предполагаю, что проблема может быть в том, что PHP генерирует HTML. - person Shiki; 14.05.2010