Onclick按钮始终发布html按钮的值

时间:2012-03-25 14:16:34

标签: php html

我使用以下代码通过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.');
            }
        }
    ?>

2 个答案:

答案 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.');
        }
    }
?>