我可以从ajax返回javascript应该做什么吗


Can I return, from ajax, what should javascript do?

我有以下javascript:

  $.get("/ajax/config-switch.php", { 'edit' : edit, 'id' : id },
     function(data){
        if (data[0] == 'success'){
           $('#tooltip-hovered').html(data[1]);
        }
     },'json'
  );

然而,我想做的是返回这行:

$('#tooltip-hovered').html(data[1]);

从PHP,而不是用javascript。因此,config-switch.php文件将以以下内容结尾:

<?php
if ($success){
echo json_encode(array('success', "$('#tooltip-hovered').html(data[1]);"));
?>

这有可能吗?

如果我理解正确,您希望仅从服务器响应执行JS代码。php文件应该返回一些正确的JS代码,并且应该执行它。

尝试将脚本用作dataType,而不是json。所以你的JavaScript会像:

$.get(
    '/ajax/config-switch.php', 
    {'edit': edit, 'id': id},
    function(data) {
        console.log('callback');
    }, 
    'script'
 );

以及相应的PHP块:

<?php
if ($success)
{
    echo "$('#tooltip-hovered').html('some value');";
}
?>