-1

我正在尝试纠正一些 JavaScript 以使用 PHP 定义变量。该变量中有一个小 jQuery,应该由客户端呈现。我说“应该”,但真正的意思是我想要它。我应该怎么做才能使 o2 与 o1 相同(即隐藏 jQuery)?

谢谢!

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" /> 
<title></title> 
<script src="http://code.jquery.com/jquery-latest.js" type="text/javascript"></script> 
<script>
$(function() {
    var o1={"foo":{"bar": "abc/index.php?="+$("#id").val()}};
    console.log(o1);
<?php
$d='abc/index.php';
$json='{"foo":{"bar": "'.$d.'?id=\"+$(\"#id\").val()"}}';
//echo($json);
$json=json_decode($json);
//echo(print_r($json,1));
$json=json_encode($json);
//echo($json);

echo("var o2=".$json.";");
?>

console.log(o2);
});

</script>

</head>

<body>
<input type="hidden" id="id" value="123" />
</body> 
</html> 
4

3 回答 3

0

未经测试,可能包含错误:

<script>
$(function() {
    var o1={"foo":{"bar": "abc/index.php?="+$("#id").val()}};
    console.log(o1);

    <?php
    $d='abc/index.php';
    $json='{"foo":{"bar": "' . $d . '?="+$("#id").val()}}';

    echo("var o2=".$json.';');
    ?>

    console.log(o2);
});
</script>
于 2012-05-20T23:14:02.990 回答
0

我更喜欢使用 json_encode 制作 json,以避免在解析和验证 json 时出现意外问题。

json_encode 和 json_decode 仅适用于 UTF-8,如果另一个字符集具有特殊字符,它将导致一个空白字符串。

<script>
<?php

$d = "abc/index.php";
$json['foo']['bar'] = $d . '?id=$("#id").val()';

echo "var o2 = ".json_encode($json);

?>
console.log(o2);
</script>
于 2012-05-20T23:47:09.913 回答
0

你有这个:

<input type="hidden" id="id" value="123" />

所以我可以假设您是从数据库中获取该 ID 的,对吗?也许是这样的:

<input type="hidden" id="id" value="<?php echo $row[id];?>" />

如果是这种情况,请执行以下操作(我测试并工作):

你不需要隐藏的输入来做到这一点。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" /> 
<title></title> 
<script src="http://code.jquery.com/jquery-latest.js" type="text/javascript"></script> 
<script>
$(function() {

    <?php
        //From your SQL query you obtained
        //$row['id'] = 123;
        $id = $row['id'];
    ?>

    var o1={"foo":{"bar": "abc/index.php?=" + <?php echo $id ?>}};
    console.log(o1);

    <?php
    $d='abc/index.php';
    $json='{"foo":{"bar": "'.$d.'?='.$id.'"}}';
    //echo($json);
    $json=json_decode($json);
    //echo(print_r($json,1));
    $json=json_encode($json);
    //echo($json);
    echo("var o2=".$json.';');
    ?>

    console.log(o2);
});
</script>
</head>
<body>
</body> 
</html>
于 2012-05-20T23:48:51.070 回答