Javascript 使用POST发送html选择选项禁用属性,并在输入表单中使用onclick发送启用的选择选项属性

Javascript 使用POST发送html选择选项禁用属性,并在输入表单中使用onclick发送启用的选择选项属性,javascript,php,Javascript,Php,您好,我想发送html选择选项禁用属性与POST和启用选择选项属性与输入表单中的onclick。 例如,我有: <script> function checked(){ var sel = document.getElementById("table A"); if(sel.options[sel.selectedIndex].text=='AAAA'){ document.getElementById('table B')

您好,我想发送html选择选项禁用属性与POST和启用选择选项属性与输入表单中的onclick。 例如,我有:

<script>
function checked(){
     var sel = document.getElementById("table A");  
    if(sel.options[sel.selectedIndex].text=='AAAA'){
         document.getElementById('table B').disabled = false;
    }
}

</script>


<?php
        print("<form method=\"POST\">");
        <print("<tr><th>Table A</th><td>
        <select id='table A' name='table1'>
                <option value=' '>Select</option>
                <option name='AAAA' value='A' onclick=\"checked()\">AAAA</option>
                <option name='BBBB' value='B'>BBBB</option>
        </select></td></tr>");
     print("<tr><th>Table B</th><td>
        <select id='table B' name='table2' disabled>
                <option value=' '>Select</option>
                <option name='BBB' value='B'>BBBB</option>
                <option name='CCC' value='C'>CCCC</option>
                </select></td></tr>");
        print("<tr><td><input type=\"submit\" id=\"save\" name=\"save\" value=\"Save\" ></td></tr>");

if(isset($_POST['save'])){
if(document.getElementById("table B").disabled){
            return ' ';
            }else{
                $type_modify=$_POST['table B'];
                }
?>

函数检查(){
var sel=document.getElementById(“表A”);
如果(sel.options[sel.selectedIndex].text='AAAA'){
document.getElementById('table B')。disabled=false;
}
}

你可以这样做

<form action="/action_page.php">
  <label for="fname">First name:</label><br>
  <input type="text" id="fname" name="fname" value="John"><br>
  <label for="lname">Last name:</label><br>
  <input type="text" id="lname" name="lname" value="Doe"><br><br>
  <input type="submit" value="Submit">
</form>
<?php
if($_POST) {
 echo "Post Variables sent";
 var_dump($_POST);
} else {
 echo "Where I will put my form HTML and JS.";
}
?>
比如说

<script>

function processForm(e) {
    if (e.preventDefault) e.preventDefault();

    var input = document.createElement('input');
    input.type = 'hidden';
    input.name = "my-disabled-check-input";
    input.value = document.getElementById('table B').disabled;
    this.appendChild(input);

    this.submit();
}

var form = document.getElementById('my-form');
if (form.attachEvent) {
    form.attachEvent("submit", processForm);
} else {
    form.addEventListener("submit", processForm);
}
</script>
如果想要有一个PHP文件来显示表单并使用$\u POST变量,我们可以这样做

<form action="/action_page.php">
  <label for="fname">First name:</label><br>
  <input type="text" id="fname" name="fname" value="John"><br>
  <label for="lname">Last name:</label><br>
  <input type="text" id="lname" name="lname" value="Doe"><br><br>
  <input type="submit" value="Submit">
</form>
<?php
if($_POST) {
 echo "Post Variables sent";
 var_dump($_POST);
} else {
 echo "Where I will put my form HTML and JS.";
}
?>

您的PHP也可以这样使用,以使编写HTML更容易

<?php if($_POST): ?>
    Your name is <?=$_POST['fname']?> <?=$_POST['lname']?>.
<?php else: ?>
    <form action="/action_page.php">
      <label for="fname">First name:</label><br>
      <input type="text" id="fname" name="fname" value="John"><br>
      <label for="lname">Last name:</label><br>
      <input type="text" id="lname" name="lname" value="Doe"><br><br>
      <input type="submit" value="Submit">
    </form>
<?php endif; ?>

你的名字是。
名字:

姓氏:


这个
相当于
,只是稍微短一点,我喜欢在HTML视图中这样使用它


此脚本不考虑任何用户输入解析,因此请记住这一点。您可能还需要查看HTML5表单验证,以确保输入仅为您期望的信息,以及用户输入的PHP过滤。

首先,请尝试
上的
onchange
选择
,而不是
选项上的
onclick
。这回答了你的问题吗?另外,
if(isset($_POST['save']){if(document.getElementById(“table B”).disabled){
这里你混合了PHP和Javascript。PHP无法访问DOM。哦,不。我不能混合PHP和Javascript。我该怎么做呢?我可以只用PHP涉猎end end enable输入表单吗?你不能有JS语法、函数(比如
getElementById
)或对象(如
文档
)将其解析为PHP并期望其正常工作。否则,您当然可以使用PHP生成JS。假设您的错误报告已打开,您应该会收到上述错误。您需要做的是,例如,在Submit上提供一个包含附加数据的
javascript,否则不会以您的表单提交。如何提交
$type_modify
使用了吗?PHP的其余部分应该是HTML。你也应该坚持使用一种封装方法,属性使用双引号或单引号,这是个人偏好。因此我不能将PHP和js与表单标记和方法post混合在同一页面中。例如,我可以在一个页面中编写js,在另一个页面中编写PHP表单。对吗?可以,但您需要一个if语句来检测$\u POST变量是否设置为让您知道应该提交到数据库。您能给我一个例子吗?我是初学者,了解php和javascript。我更新了它,以便您更好地了解它的工作原理。