Home » Php » php – How can I generate Dynamic Javascript?

php – How can I generate Dynamic Javascript?

Posted by: admin July 12, 2020 Leave a comment

Questions:

I render a page using YUI. and depending on the user I need to change how it is rendered. This change is not something that can be parametrized, it is drastic and different for each user.

Please tell me how can I generate Javascript dynamically?

How to&Answers:

I personally use a php file to pass a JavaScript object made up of some basic session and internal settings, nothing mission critical as passing information to the client isn’t overly secure, but I believe it might follow the same principles as what you are looking for.

Similarly, I use this to display certain elements once the client is logged in, although all the authorization is still done on the server side. If my session handler gives the PHP file the ok, it outputs a JavaScript object using a PHP heredoc string, otherwise it doesn’t output anything. You can use attributes of this object to compare against, or you could output only the JavaScript for how a certain page should be rendered, based on settings in your php file.

HTML:

<script src="common/javascript/php_feeder.php" type="text/javascript"></script>

PHP:

//my session handler authorisation check has been removed
//although you could place your own up here.

//assuming session was authorised
//set content type header
header("content-type: application/x-javascript"); 

$js_object = <<<EOT
var my_object = {
    my_attr: '{$my_attr}',
    my_attr2: '{$my_arrt2}',
    etc: '{$etc}'
}
EOT;

print($js_object);

Answer:

You can probably create two separate Java script files, and include the required file, depending upon the user type.

Pseudocode

If user_type is One
    <Script src='one.js' type='javascript'></script>
else
    <Script src='other.js' type='javascript'></script>
End If

Answer:

JavaScript has an eval function, so I think (I haven’t tried it) that you can generate JavaScript by writing it into a string variable (and then calling eval on that string variable).

Answer:

A little bit of elaboration here would most certainly help in getting you a more descript and helpful answer. That in mind, though, you could easily just use functions declared inside an if statement to provide distinctly varied experiences for different users.

A very basic example:

<script>
function do_something(userType)
 {
if (userType == 'A')
 {
// everything you need to do for userType A
 }
if (userType == 'B')
 {
// everything you need to do for userType B
 }
 }
</script>