2

I am trying to call a javascript function from the onchange attribute of the select tag ! My issue is that I am passing the name attribute of the select to the function which always go null.

<body>


<form action="" method="post">
<select name="slct" id="name" onchange="rohan('measurement_conversion', '<?php echo isset($_POST["slct"])?$_POST["slct"]:"null" ?>')">
<option value="yes" selected="selected"> yes </option>
<option value="nopes"> nopes </option>
<option value="may be"> May be </option>
<option value="dont know"> dont know </option>
</select>
</form>

<div id="abc">
</div>


</body>

And here my javascript function

<script>

function rohan(var1, var2)
{

    document.getElementById("abc").innerHTML=var1 + "            " + var2;
}

</script>   

It always prints null.. Any help will be appreciated !

3 Answers 3

9

HTML:

<body>
    <form action="" method="post">
        <select name="slct" id="name" onchange="rohan(this.value)">
            <option>Select</option>
            <option value="yes" selected="selected"> yes </option>
            <option value="nopes"> nopes </option>
            <option value="may be"> May be </option>
            <option value="dont know"> dont know </option>
        </select>
    </form>
</body>

JS:

<script>
    function rohan(value)
    {
        //you can get the value from arguments itself
        alert(value);
    }
</script>
Sign up to request clarification or add additional context in comments.

Comments

0

PHP is run on the server before JavaScript is ever run in the browser. It doesn't get re-evaluated when the user changes the selected item.

2 Comments

So what will be the solution ?
Code that reacts to user changes needs to either (a) be written in JavaScript, not PHP... or (b) use AJAX.
0

No put in tag HTML attribute javascript, onchange is better in the script:

<script>
    var b=document.getElementById('name');
        b.onchange=function (){
        var a=document.getElementById('name').value;
        console.log(a);
    }
</script>

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.