我使用以下代码通过html按钮发布搜索值。但是onlick
似乎没有用。无论我是否单击按钮,都会发布该值。怎么能解决这个问题?
<form method="post" action="urban.php" id="search_form">
<input type="button" class="button" name="search" value="Urban" onlick="<?php $_POST['search'] = 'Urban'; ?>">
</form>
<?php if(isset($_POST['search']) && !empty($_POST['search']))
{
include('searchfunction.php');
if(count($data) > 0)
{
?>
<script type="text/javascript">
$(document).ready(function(){
var description = '';
var myPlaylist = [
<?php
echo(implode(',', $data));
?>
];
$('#main').ttwMusicPlayer(myPlaylist, {
autoPlay:false,
description:description, }
);
});
</script>
<?php
}
else
{
echo ('No sounds found.');
}
}
?>
答案 0 :(得分:2)
你正在混合PHP和HTML,但这不会像你想要的那样工作。在用户浏览器中“执行”html时,将在服务器上解释PHP代码。您可以提交表单并将值提供给服务器。
使用提交按钮
<input type="submit">
或添加正确的onclick功能
<input type="button" class="button" name="search" value="Urban" onlick="this.parentNode.submit();">
答案 1 :(得分:2)
PHP&amp; JS不会同时执行:PHP在服务器端执行,以创建HTML代码。当所有HTML都已呈现时,Javascript在客户端执行。
这是一个快速修复:
<form method="post" action="urban.php" id="search_form">
<input type="hidden" name="search" value="<?php echo 'Urban';?>"
<input type="submit" value="Search">
</form>
<?php if(isset($_POST['search']) && !empty($_POST['search']))
{
include('searchfunction.php');
if(count($data) > 0)
{
?>
<script type="text/javascript">
$(document).ready(function(){
var description = '';
var myPlaylist = [
<?php
echo(implode(',', $data));
?>
];
$('#main').ttwMusicPlayer(myPlaylist, {
autoPlay:false,
description:description, }
);
});
</script>
<?php
}
else
{
echo ('No sounds found.');
}
}
?>