Нужна функция JavaScript в ответ на Ajax Call - PullRequest
0 голосов
/ 23 апреля 2011

Я пытаюсь получить функцию javascript в вызове ajax.Мой код работает нормально и возвращает обратно мой код JavaScript, но есть проблема в моей полученной функции JavaScript.Вот мой код для Ajax ..

function media_type(id)
{
    var xmlhttp;
    if (window.XMLHttpRequest)
    {   
        // code for IE7+, Firefox, Chrome, Opera, Safari
        xmlhttp=new XMLHttpRequest();
    }
        else
        {   
            // code for IE6, IE5
            xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
        }
            xmlhttp.onreadystatechange=function()
            {
                if (xmlhttp.readyState==4 && xmlhttp.status==200)
                {
                    eval(document.getElementById("asad").innerHTML=xmlhttp.responseText);
                }
            }
    xmlhttp.open("GET","video/media_type.php?cat_id="+id,true);
    xmlhttp.send();
    }

А она - это код, где я возвращаю простое окно оповещения о мире приветствия.

    if($num_rows==0)
    {
    //echo("Sorry no record found.");

    echo'<script type="text/javascript">
                alert("hello World");
                </script>';
    }

Я получаю код точно, нокод не выполняется.Пожалуйста, скажите мне, как я могу решить эту проблему.Заранее спасибо.

Ответы [ 5 ]

1 голос
/ 23 апреля 2011

Могу я спросить, зачем вам нужно возвращать JavaScript с сервера?Как насчет того, чтобы вы вернули простой ответ (строка, логическое значение, число) с сервера и выполнили то, что уже существует на клиенте, на основе возвращаемого значения?Намного безопаснее и проще.Возможно, это не то решение, которое вы ищете, но ваш js-fu будет гораздо сильнее.

0 голосов
/ 28 сентября 2012
//try using this
<?php
  if($num_rows==0)
    {

    //echo("Sorry no record found.");
?>
  <script type="text/javascript">
            alert("hello World");
            </script>
<?php
    }
?>
0 голосов
/ 23 апреля 2011

Просто верните JS, который вы хотите выполнить (alert("hello World");) и сделайте eval. Удалить <script type="text/javascript"> и </script>

eval(xmlhttp.responseText);

будет:

eval('alert("hello World")');

0 голосов
/ 23 апреля 2011

я попробую с этим

if($num_rows==0)
{
//echo("Sorry no record found.");
 echo'<html><script type="text/javascript">
            alert("hello World");
            </script>
      </html>';
}

я думаю, что эта строка создает проблему

eval(document.getElementById("asad").innerHTML=xmlhttp.responseText)

, то есть

eval(document.getElementById("asad").innerHTML='<script>alert("Hi");</script>';)

преобразуется в

eval(document.getElementById("asad").innerHTML='&lt; script &gt; alert("Hi");&lt;/script&gt;';)
0 голосов
/ 23 апреля 2011

У меня была эта проблема на днях ...

Вы должны установить свой заголовок на странице php в Content-Type: text / javascript; кодировка = UTF-8

Вот весь код, чтобы сделать эту работу

Для вашего php файла

<?php 
header("Content-Type: text/javascript; charset=utf-8");
echo'<script type="text/javascript">
            alert("hello World");
            </script>
      ';?>

а вот и Javascript

    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js" type="text/javascript"></script>
        <script>
$.ajax({
        type:'POST',
        url:'toget.php',
        success:function(d)
        {
            $(document).append(d);
        }
        });
        </script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...