我试图通过脚本标记调用jQuery和PHP文件的组合,但它没有正确加载。
这是我的代码
<script type="text/javascript">
jQuery(document).ready(function(){
$("#country").change(function(){
var getVal = $(this).val();
<?php $sql="select t.term_id,t.description,t2.name,t2.slug from wp_term_taxonomy as t join wp_terms as t2 on t.term_id=t2.term_id where t.parent=3";
$data=mysql_query($sql);
while($rec=mysql_fetch_array($data))
{?> if(getVal=="<?php echo $rec['name'];?>" )
{
window.location = "<?php echo get_category_link( $rec['term_id'] );?>";
} <?php }?>
});
$("#team").change(function(){
var getVal = $(this).val();
<?php
$args=array(
'orderby' => 'name',
'order' => 'ASC',
'taxonomy' => 'teams'
);
$categories=get_categories($args);
foreach($categories as $category) { ?>if(getVal=="<?php echo $category->name;?>"){
<?php $x=str_replace(' ','-',$category->name);
$y=str_replace('\'','',$x);?>
window.location = "<?php echo home_url( '/' );?>teams/<?php echo $y;?>";
}
<?php }?>
});
});
</script>
答案 0 :(得分:1)
你不能这样做,PHP将在页面加载时执行,它不会等待“更改”事件。这只是我在这个烂摊子里能看到的东西。
尝试使用php生成jquery,这没关系。
答案 1 :(得分:0)
Php在服务器上运行,javascripts在客户端上运行。你不能用这种方式组合它们。
一种方法是让javascripts使用ajax调用php文件。
请参阅“http://viralpatel.net/blogs/2009/04/jquery-ajax-tutorial-example-ajax-jquery-development.html”和“http://api.jquery.com/category/ajax/”
所以你的javascript更改事件将通过ajax调用你的php脚本所在的url。 php脚本将查询数据库并将结果以json格式输出回javascript。 javascript基本上可以用php输出的结果做任何你想做的事。