Unable to pass PHP variable to a Javascript function
I am trying to get a PHP variable to pass values to a sample javascript but nothing shows up if I tried to echo the result.
I tried passing regular strings as arguments and those worked fine. It just doesn't seem to be working if I tried to pass PHP variables as arguments.
AES (Rijndael) Encryption Test in JavaScript
<script type="text/javascript" src="Decrypt.js"></script>
</head>
<body>
<?php
mysql_connect("localhost","root","");
mysql_select_db("encryption") or die(mysql_error());
$userId = $_POST['userId'];
if (($_SERVER['REQUEST_METHOD'] == 'POST') && ($_POST['key'] == ""))
{
$query = mysql_query("select * from employee_details where id = '$userId'");
if($row=mysql_fetch_assoc($query))
{
echo '<tr>';
foreach($row as $value)
echo '<td>'.$value.'</td>';
echo '</tr>';
}
else { echo "No rows returned"; }}
else if (($_SERVER['REQUEST_METHOD'] == 'POST') && ($_POST['key']))
{
$columname = "ciphertext";
$tablename = "employee_details";
function getField($field, $tbl_name, $condition)
{
$result = mysql_query("SELECT $field FROM $tbl_name WHERE id = ".$condition);
return @mysql_result($result, 0);
}
$myValue = getField($columname,$tablename开发者_StackOverflow,$userId);
echo "Ciphertext = $myValue";
echo "<br>";
//doDecryption();
}
echo '<script type="text/javascript">
doDecryption("<?php $myValue; ?>");
</script>';
echo "whats happening";
?>
</body>
</html>
The JS file
function doDecryption(param)
{
document.write(param);
document.write("Programming change");
}
Thanks in advance. Any help much appreciated!!!!
You do not need the echo statement to build the javascript-part, just try this:
<script type="text/javascript">
doDecryption("<?php echo $myValue; ?>");
</script>
But if you do not want to change it and you want to write out the -Block via echo, you should not use the "
echo '<script type="text/javascript"> doDecryption(' . $myValue . '); </script>';
I think you should try to echo your var:
doDecryption("<?php echo $myValue; ?>");
I don't have access to PHP atm to check, but I think its because you echo uses single quotes which won't evaluate the variable. Use double quotes for the echo and escape your " inside the string and see what happens
yes its better to "echo" your variable.
or change your echo to this
echo '<script type="text/javascript">
doDecryption("'.$myValue.'");
</script>';
Try this,
<script type="text/javascript" src="Decrypt.js"></script>
<?php
mysql_connect("localhost","root","");
mysql_select_db("encryption") or die(mysql_error());
$userId = $_POST['userId'];
if (($_SERVER['REQUEST_METHOD'] == 'POST') && ($_POST['key'] == ""))
{
$query = mysql_query("select * from employee_details where id = '$userId'");
if($row=mysql_fetch_assoc($query))
{
echo '<tr>';
foreach($row as $value)
echo '<td>'.$value.'</td>';
echo '</tr>';
}
else { echo "No rows returned"; }}
else if (($_SERVER['REQUEST_METHOD'] == 'POST') && ($_POST['key']))
{
$columname = "ciphertext";
$tablename = "employee_details";
function getField($field, $tbl_name, $condition)
{
$result = mysql_query("SELECT $field FROM $tbl_name WHERE id = ".$condition);
return @mysql_result($result, 0);
}
$myValue = getField($columname,$tablename,$userId);
echo "Ciphertext = $myValue";
echo "<br>";
//doDecryption();
} ?>
<script type="text/javascript">
doDecryption("<?php $myValue; ?>");
</script>
</head>
<body>
<?php
echo "whats happening";
?>
</body>
</html>
精彩评论