Hend
Hend

Reputation: 599

Reading and printing user inputs in HTML in PHP

I have got a form (php in html or the other way around). Once user selects an option in a drop down list, it would get the input value and create a few text boxes. It seems like I have to use onchange(). How do I read the input and perform logics within the script inself? Instead of opening another .php script?

Currently this is what I have.

<?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."";
?>

Upvotes: 0

Views: 158

Answers (2)

Ket.
Ket.

Reputation: 774

if you want to add any input type ... here is the demo demo with code
you use following method.

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

then write 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>

Upvotes: 0

nickb
nickb

Reputation: 59699

You can't interact with PHP once the HTML is sent to the browser without either

  1. Refreshing the page, or
  2. Using AJAX (JavaScript).

If you know the options in the <select> beforehand (which it seems like you do), you should write some JavaScript to accomplish what you need. Here is a simple example using jQuery.

$('#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;
        }

    }
);

You will need to add additional logic to remove the inserted elements if the user changes their choice, and to insert the correct <input> elements when the page first loads, but it is a good starting point.

Upvotes: 1

Related Questions