Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/248.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将php对象传递给javascript函数_Javascript_Php_Html - Fatal编程技术网

将php对象传递给javascript函数

将php对象传递给javascript函数,javascript,php,html,Javascript,Php,Html,我想知道是否可以通过html将php对象/数组从数据库发送到javascript函数 以下是我试图实现的目标: <?php $test = array('Apple', 'Banana', 'Lemon'); ?> <a href="javascript:;" onclick="myfuntion(<?php echo json_encode($test) ?>);">Send object</a> <script type="text/

我想知道是否可以通过html将php对象/数组从数据库发送到javascript函数

以下是我试图实现的目标:

<?php
$test = array('Apple', 'Banana', 'Lemon');
?>

<a href="javascript:;" onclick="myfuntion(<?php echo json_encode($test) ?>);">Send object</a>

<script type="text/javascript">
function myfuntion(test)
{
    console.log("What is first fruit: "+test[0]);
}
</script>

我错过了什么?希望提前得到帮助和感谢:-)

您正在做正确的事情,唯一缺少的是,您需要将传递的参数用括号括起来,如下所示

<a href="javascript:;"
  onclick="myfuntion('<?php echo json_encode($test) ?>');">Send object</a>

因为您的代码将在参数中回显json编码的值/字符串(字符串必须在双引号中的单引号内),函数参数必须用括号括起来。但若它是数字,那个么它将起作用,但当你们处理对象和数组时,你们必须把它们括在
'


在您的js代码中,只需使用
JSON.parse
方法将该参数解析为
JSON

您正在做正确的事情,唯一缺少的是,您需要将传递的参数括在括号中,如下所示

<a href="javascript:;"
  onclick="myfuntion('<?php echo json_encode($test) ?>');">Send object</a>

因为您的代码将在参数中回显json编码的值/字符串(字符串必须在双引号中的单引号内),函数参数必须用括号括起来。但若它是数字,那个么它将起作用,但当你们处理对象和数组时,你们必须把它们括在
'


在js代码中,只需使用
JSON.parse
方法将该参数解析为
JSON

而不是像这样在js中直接使用$test array JSON传递函数

<?php
$test = array('Apple', 'Banana', 'Lemon');
?>

<a href="javascript:;" onclick="myfuntion();">Send object</a>

<script type="text/javascript">
function myfuntion()
{
    var test = <?php echo json_encode($test); ?>;

    for(var i=0; i<test.length; i++){
    console.log("What is first fruit: "+test[i]);

    }

}
</script>

函数myfuntion()
{
var检验=;

对于(var i=0;i而不是传入函数,直接在js中使用$test array json,如下所示

<?php
$test = array('Apple', 'Banana', 'Lemon');
?>

<a href="javascript:;" onclick="myfuntion();">Send object</a>

<script type="text/javascript">
function myfuntion()
{
    var test = <?php echo json_encode($test); ?>;

    for(var i=0; i<test.length; i++){
    console.log("What is first fruit: "+test[i]);

    }

}
</script>

函数myfuntion()
{
var检验=;

对于(var i=0;i,myfunition中的PHP代码缺少括号

<a href="javascript:;" onclick="myfuntion(<?php echo json_encode($test) ?>);">Send object</a>

MyFunction中的PHP代码缺少括号

<a href="javascript:;" onclick="myfuntion(<?php echo json_encode($test) ?>);">Send object</a>

要避免引号冲突,只需将json作为对象存储在某处:

<?php
$test = array('Apple', 'Banana', 'Lemon');
?>

<a href="javascript:;" onclick="myfuntion();">Send object</a>

<script type="text/javascript">
var data = <?php echo json_encode($test) ?>;

function myfuntion()
{
    console.log("What is first fruit: "+data[0]);
}
</script>

var数据=;
函数myfuntion()
{
log(“第一个水果是什么:+data[0]);
}
或者使用参数:

<?php
$test = array('Apple', 'Banana', 'Lemon');
?>

<script type="text/javascript">
var data = <?php echo json_encode($test) ?>;
</script>    
<a href="javascript:;" onclick="myfuntion(data);">Send object</a>

<script type="text/javascript">
function myfuntion(jsonObj)
{
    console.log("What is first fruit: "+jsonObj[0]);
}
</script>

var数据=;
函数MyFunction(jsonObj)
{
log(“什么是第一个水果:+jsonObj[0]);
}

要避免引号冲突,只需将json作为对象存储在某处:

<?php
$test = array('Apple', 'Banana', 'Lemon');
?>

<a href="javascript:;" onclick="myfuntion();">Send object</a>

<script type="text/javascript">
var data = <?php echo json_encode($test) ?>;

function myfuntion()
{
    console.log("What is first fruit: "+data[0]);
}
</script>

var数据=;
函数myfuntion()
{
log(“第一个水果是什么:+data[0]);
}
或者使用参数:

<?php
$test = array('Apple', 'Banana', 'Lemon');
?>

<script type="text/javascript">
var data = <?php echo json_encode($test) ?>;
</script>    
<a href="javascript:;" onclick="myfuntion(data);">Send object</a>

<script type="text/javascript">
function myfuntion(jsonObj)
{
    console.log("What is first fruit: "+jsonObj[0]);
}
</script>

var数据=;
函数MyFunction(jsonObj)
{
log(“什么是第一个水果:+jsonObj[0]);
}

这是因为
json\u encode
生成的字符串包含双引号,并且与
onclick=“…”

尝试用
htmlspecialchars


这是因为
json\u encode
生成的字符串包含双引号,并且与
onclick=“…”

尝试用
htmlspecialchars



将行更改为
将行更改为将发送JSON字符串而不是JS对象的
:/@Dipesh Parmar好的,更改了您现在建议的内容此错误:未捕获的语法错误:无效或意外的令牌,myfunction('[@u_mulder编辑了答案,但我向他表明了这一点,而不是为OP编写所有代码,因为我提到它将是json编码的值/字符串,所以稍后他所需要做的就是在js代码上解析它。实际上,正如Anggara所建议的,只是改变了这一点,它起了作用:-)这将发送JSON字符串而不是JS对象:/@Dipesh Parmar好吧,更改了您现在建议的错误:未捕获的语法错误:无效或意外的标记,myfunction('[@u_mulder编辑了答案,但我向他表明了这一点,而不是为OP编写所有代码,因为我提到它将是json编码的值/字符串,所以稍后他所需要做的就是在js代码上解析它。实际上,正如Anggara所建议的,只是改变了这一点,它起了作用:-)