I am trying to set a javascript variable to be equal to the output of php code:
var name = '<?php global $email; echo json_encode(passthru("python Backend/User/getName.py $email"));?>';
When this runs, it returns the correct value, but it also attaches a null value to it:
var name = 'name
null';
This causes the code to take the value as null and not as the name returned.
My Answer:
It looks like the issue might be with the passthru() function in your PHP code. The passthru() function is used to execute a command and display raw output, but it does not return the output as a string that can be assigned to a variable.
Instead, you can use the exec() function in PHP to capture the output of the command and then echo it out as a JSON encoded string. Here's an example of how you can modify your code:
php
global $email;
$name = exec("python Backend/User/getName.py $email");
echo "var name = '" . json_encode($name) . "';";
?>
This code will execute the Python script and capture the output in the $name variable. Then, it will echo out the JavaScript variable assignment with the JSON encoded value of $name. This should give you the desired result without the extra null value.
Rate this post
5 of 5 based on 8000 votesComments