Невозможно передать переменную PHP в функцию Javascript - PullRequest
0 голосов
/ 03 декабря 2010

Я пытаюсь получить переменную PHP для передачи значений в образец javascript, но ничего не появляется, если я пытаюсь отобразить результат

Я пытался передать обычные строки в качестве аргументов, и они работали нормально. Это просто не работает, если я попытался передать переменные PHP в качестве аргументов.

Тест шифрования AES (Rijndael) в 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,$userId);

                echo "Ciphertext = $myValue";
                echo "<br>";
                //doDecryption();

        }
        echo '<script type="text/javascript">
doDecryption("<?php $myValue; ?>");
</script>';
echo "whats happening";
?>
</body>
</html>

Файл JS

function doDecryption(param)
 {
    document.write(param);
    document.write("Programming change");
 }

Заранее спасибо. Любая помощь высоко ценится !!!!

Ответы [ 6 ]

3 голосов
/ 03 декабря 2010

Вам не нужен оператор echo для построения javascript-части, просто попробуйте это:

<script type="text/javascript">
  doDecryption("<?php echo $myValue; ?>");
</script>

Но если вы не хотите его менять и хотите записать -Block через echo, вы не должны использовать "

echo '<script type="text/javascript"> doDecryption(' . $myValue . '); </script>';
1 голос
/ 03 декабря 2010

Я думаю, вы должны попытаться повторить ваш вар:

doDecryption("<?php echo $myValue; ?>");
0 голосов
/ 03 декабря 2010

или измените свое эхо на это

echo '<script type="text/javascript">
doDecryption("'.$myValue.'");
</script>';
0 голосов
/ 03 декабря 2010

да, лучше "повторить" вашу переменную.

0 голосов
/ 03 декабря 2010

У меня нет доступа к PHP atm для проверки, но я думаю, что это потому, что вы используете эхо, используя одинарные кавычки, которые не будут оценивать переменную. Используйте двойные кавычки для эха и избегайте "внутри" строки и посмотрите, что происходит

0 голосов
/ 03 декабря 2010

Попробуйте это,

<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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...