Javascript 从下拉列表中选择一个名称,如果不退出,则可以在文本框中写入

Javascript 从下拉列表中选择一个名称,如果不退出,则可以在文本框中写入,javascript,php,html,Javascript,Php,Html,我有一个下拉列表和一个文本框。下拉列表中有动物的名称。问题在于,下拉列表中可能没有可供选择的名称,因此当请求的名称不存在时,用户应在选中复选框后在文本框中键入他/她最喜爱的动物(选中复选框时,应禁用下拉列表,未选中复选框时,应禁用下拉列表)。在最后一步,将下拉列表或文本框的值发送到数据库 <form name="f" action="" method="post"> echo"choose an animal".'<br/>'; echo '<select name

我有一个下拉列表和一个文本框。下拉列表中有动物的名称。问题在于,下拉列表中可能没有可供选择的名称,因此当请求的名称不存在时,用户应在选中复选框后在文本框中键入他/她最喜爱的动物(选中复选框时,应禁用下拉列表,未选中复选框时,应禁用下拉列表)。在最后一步,将下拉列表或文本框的值发送到数据库

<form name="f" action="" method="post">
echo"choose an animal".'<br/>';
echo '<select name="animals">';
echo'<option> bear </option>';
echo'<option> cat </option>';
echo'<option> lion </option>';
echo'<option> monkey </option>';
echo'</select>';

echo"or write if is not in list".'<br/>';
echo'<input type="checkbox" name="checkbox">';
echo'<input type="textbox" name="animals">';
echo'<input type="submit" name="submit" value="submit">';
</form>
if(isset($_POST['submit']))
{
    $db_host = 'localhost';
    $db_name= 'site';
    $db_table= 'animals';
    $db_user = 'root';
    $db_pass = '';


    $con = mysql_connect($db_host,$db_user,$db_pass) or die("خطا در اتصال به پايگاه داده");
    $selected=mysql_select_db($db_name, $con) or die("خطا در انتخاب پايگاه داده");

    $ins = "INSERT INTO $db_table (animal_name) 
            VALUES ('" . mysql_escape_string($_POST['animals']) . "')";
    $saved=mysql_query($ins );

    mysql_close($con); 
}

回声“选择一种动物”
; 回声'; 回声“熊”; 回声“猫”; 回声“狮子”; 回声“猴子”; 回声'; echo“如果不在列表中,则写入”。“
”; 回声'; 回声'; 回声'; 如果(isset($_POST['submit'])) { $db_host='localhost'; $db_name='site'; $db_表=‘动物’; $db_user='root'; $db_pass=''; $con=mysql\u connect($db\u host、$db\u user、$db\u pass)或死; $selected=mysql\u select\u db($db\u name,$con)或die(死亡); $ins=“插入到$db_表中(动物名称) 值(“.”.mysql_escape_字符串($_POST['animals'])。“)”; $saved=mysql\u查询($ins); mysql_close($con); }
使用checked属性启用或禁用给定字段

<script>
function onClickCheckbox( )
{
    if( document.getElementById("checkbox").checked == true )
        document.getElementById("animalDropdown").disabled = true;
    else
        document.getElementById("animalDropdown").disabled = false;
}
</script>

<select name="animalDropdown"> ... </select>
<input type="checkbox" id="checkbox" onclick="onClickCheckbox()" value="1" checked="" />

函数onClickCheckbox()
{
if(document.getElementById(“checkbox”).checked==true)
document.getElementById(“animalDropdown”).disabled=true;
其他的
document.getElementById(“animalDropdown”).disabled=false;
}
... 
不要对两个不同的输入使用相同的ID或名称。使用PHP脚本区分两者。


<?php
    echo"choose an animal".'<br/>';
    echo '<select name="animals" id="animalDropdown">';
    echo'<option> bear </option>';
    echo'<option> cat </option>';
    echo'<option> lion </option>';
    echo'<option> monkey </option>';
    echo'</select>';

    echo"or write if is not in list".'<br/>';
    echo'<input type="checkbox" name="checkbox" id="checkbox" onclick="onClickCheckbox()">';
    echo'<input type="textbox" name="animalstext" id="animals">';
    ?>

    <script>
    onClickCheckbox();

    function onClickCheckbox( )
    {
        if( document.getElementById("checkbox").checked == true )
        {
            document.getElementById("animalDropdown").disabled = true;
            document.getElementById("animals").disabled = false;
        }
        else
        {
            document.getElementById("animalDropdown").disabled = false;
            document.getElementById("animals").disabled = true;
        }
    }
    </script>
onClickCheckbox(); 函数onClickCheckbox() { if(document.getElementById(“checkbox”).checked==true) { document.getElementById(“animalDropdown”).disabled=true; document.getElementById(“动物”).disabled=false; } 其他的 { document.getElementById(“animalDropdown”).disabled=false; document.getElementById(“动物”).disabled=true; } }

这将执行主动/非主动作业。使用PHP代码的其余部分在数据库中插入数据。顺便说一句,我想您也需要一个提交按钮。

那么文本框在哪里以及如何发送到数据库?文本框始终处于启用状态。如果用户想从下拉列表中选择动物,我需要=>启用下拉列表和禁用文本框。当用户没有找到他/她需要的东西时,单击复选框=>禁用下拉列表并启用textboxnotice,我更改了他们的姓名。每个表单字段的名称必须不同。例如,我已将textbox的名称更改为animalstext。是你干的吗?是的,我看到了。这是我的财产。谢谢达达西;)