在PHP中以HTML格式读取和打印用户输入

时间:2012-01-27 04:00:35

标签: php html

我有一个表单(PHP中的HTML或其他方式)。一旦用户在下拉列表中选择一个选项,它将获得输入值并创建几个文本框。好像我必须使用onchange()。如何阅读输入并在脚本中执行逻辑?而不是打开另一个.php脚本?

目前这就是我所拥有的。

<?php
$tables = $_POST["tables"];
?>

<html>
<body>

<form method="post" action="<?php echo $PHP_SELF;?>">
Table Name: <div id="tables">
<select name="tables">
<option value="Applications">Application</option>
<option value="Device">Device</option>
</select>
</div>
</form>

<?
echo "".$tables."";
?>

2 个答案:

答案 0 :(得分:1)

在没有

的情况下将HTML发送到浏览器后,您无法与PHP交互
  1. 刷新页面,或
  2. 使用AJAX(JavaScript)。
  3. 如果事先知道<select>中的选项(看起来像你这样做),你应该编写一些JavaScript来完成你需要的东西。这是使用jQuery的simple example

    $('#tables_select').change(
        function( eventObject ){
            alert('You chose ' + $(this).val());
            switch( $( this ).val())
            {
                case 'Applications':
                    $('#tables').append('<input type="text" name="application_name" value="Enter an application name" />"');
                break;
                case 'Device':
                    $('#tables').append('<input type="text" name="device_name" value="Enter a device name" />"');
                break;
            }
    
        }
    );
    

    如果用户更改了他们的选择,您将需要添加其他逻辑来删除插入的元素,并在页面首次加载时插入正确的<input>元素,但这是一个很好的起点。

答案 1 :(得分:0)

如果你想添加任何输入类型......这里是演示demo with code
你使用以下方法。

<form method="post" action="<?php echo $PHP_SELF;?>" onChange="return createTxtbox()">
Table Name: <div id="tables">
<select name="tables">
<option value="Applications">Application</option>
<option value="Device">Device</option>
</select>
</div>
<span id="fooBar">&nbsp;</span>
</form>  

然后写javascript,

<SCRIPT language="javascript">
function createTxtbox() {
 var type="text";
    //Create an input type dynamically.
    var element = document.createElement("input");

    //Assign different attributes to the element.
    element.setAttribute("type", type);
    element.setAttribute("value", type);
    element.setAttribute("name", type);

    var foo = document.getElementById("fooBar");

    //Append the element in page (in span).
    foo.appendChild(element);

}
</SCRIPT>