Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 当下拉框中的值来自mysql时,使用Javascript禁用文本字段_Php_Javascript_Function_Variables_Drop Down Menu - Fatal编程技术网

Php 当下拉框中的值来自mysql时,使用Javascript禁用文本字段

Php 当下拉框中的值来自mysql时,使用Javascript禁用文本字段,php,javascript,function,variables,drop-down-menu,Php,Javascript,Function,Variables,Drop Down Menu,我有一个简单的HTML脚本,使用下拉菜单。选择值1时,用户可以写入文本字段,如果选择值2,则禁用文本字段 但是,我更改了下拉菜单的值,因此一个值来自使用PHP的mysql表,另一个值保留为“option value='1”。但是现在两个文本字段都没有被禁用。下面是代码 `<script type="text/javascript"> function findselected() { if (document.form.selmenu.value == <

我有一个简单的HTML脚本,使用下拉菜单。选择值1时,用户可以写入文本字段,如果选择值2,则禁用文本字段

但是,我更改了下拉菜单的值,因此一个值来自使用PHP的mysql表,另一个值保留为“option value='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> 
HTML中缺少回音,javascript中回音周围缺少一些引号

另外,$wah在初始化之前使用。

请尝试以下方法:

<?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> 

PHP看起来生成了糟糕的HTML,你确定上面的说法正确吗?感谢你的回复,我尝试过修改脚本,使其能够与上面创建的变量一起工作,但没有任何区别。我遗漏了一些明显的东西吗?感谢您的回复,我尝试将javascript中的PHP变量更改为,当这两次都不起作用时,我使用了抱歉的双重帖子,我尝试在javascript函数上方声明PHP变量,但仍然没有成功。iv甚至将函数移到了表单下方,但仍然不起作用。谢谢。它使用一个预设变量,但是如果我尝试调用数据库并用它填充选项值,而不是$wah,它就不起作用。我猜id需要在脚本开始时进行数据库调用,并存储变量结果,然后再将其放入选项值中。谢谢你让它工作起来。我想问题可能是PHP生成HTML。