我的页面显示加载javascript

时间:2012-12-12 05:33:34

标签: php javascript codeigniter

我在我的php文件中添加了一些javascript代码,如下所示:

这是行动部分:

<script type="text/javascript">
function show_product(){
<?php foreach($products as $p){ ?>
if("<?php echo $p->category ?>" == "Smartphone")
document.write('<?php echo ($p->name); ?>');
<?php } ?>
}
</script>

这是按钮部分:

<?php
$js = 'onClick="show_product()"';
echo form_button('change', 'Search', $js); 
?>

但是,该功能是在一个按钮调用之后调用,该按钮调用放在同一个地方并且所有数据都是可用的,但是我的页面在点击按钮后显示加载,尽管它显示了我想要的完美结果。 任何人都可以帮我找出问题所在吗?

1 个答案:

答案 0 :(得分:0)

你可以通过将它编码为JSON并在javascript中用作数组来从php传递$ products数组。在for或foreach循环中使用该数组来获取数据..这样你就不需要在里面使用更多的php标签..它会工作......

使用json_encode将其转换为php中的json,然后发送到查看模板,其中你有javascript

$message = "Hello";

$json = array(   
      'message' => $message,
);
echo $json_encoded = json_encode($json);

it wll output as
{"message":"Hello"}

and in javascript u just try the below,

var output = <?php echo $json_encoded; ?>
alert(output);
alert(output.toSource());