Php Onlick按钮总是发布html按钮的值

Php Onlick按钮总是发布html按钮的值,php,html,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'; ?&g

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


您正在混合使用PHP和HTML,但这不会像您希望的那样工作。PHP代码在服务器上解释,而html在用户浏览器中“执行”。您可以提交表单并将值提供给服务器

使用提交按钮

<input type="submit">

或者添加正确的onclick函数

    <input type="button" class="button" name="search" value="Urban" onlick="this.parentNode.submit();">

您正在混合使用PHP和HTML,但这不会像您希望的那样工作。PHP代码在服务器上解释,而html在用户浏览器中“执行”。您可以提交表单并将值提供给服务器

使用提交按钮

<input type="submit">

或者添加正确的onclick函数

    <input type="button" class="button" name="search" value="Urban" onlick="this.parentNode.submit();">

PHP和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.');
        }
    }
?>


PHP和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.');
        }
    }
?>


使用onclick可以调用javascript函数。类似onclick=“doSearch()”的内容。你在那里做的事情真的很奇怪,我真的不明白
onlick=“”
-这段代码到底应该做什么?它只是发布按钮值。我有不同的类别,我想在按下按钮或类别时显示结果。@PhilippBraun:我不认为它做了你认为它做的事情。当页面加载时,执行的第一个PHP是用值
'Urban'
覆盖
$\u POST['search']
中的任何内容。这很奇怪,因为
搜索
的表单值总是
'Urban'
,因为它被编码到
按钮
中。那么在发出的
onclick=“”
中会出现什么结果呢?空字符串<代码>真值
?赋值语句实际上不会生成字符串,是吗?如果不点击按钮,“发布的价值”是什么?听起来您确实需要一些基本的PHP/JavaScript/HTML教程。类似onclick=“doSearch()”的内容。你在那里做的事情真的很奇怪,我真的不明白
onlick=“”
-这段代码到底应该做什么?它只是发布按钮值。我有不同的类别,我想在按下按钮或类别时显示结果。@PhilippBraun:我不认为它做了你认为它做的事情。当页面加载时,执行的第一个PHP是用值
'Urban'
覆盖
$\u POST['search']
中的任何内容。这很奇怪,因为
搜索
的表单值总是
'Urban'
,因为它被编码到
按钮
中。那么在发出的
onclick=“”
中会出现什么结果呢?空字符串<代码>真值
?赋值语句实际上不会生成字符串,是吗?如果不点击按钮,“发布的价值”是什么?听起来你真的需要一些基本的PHP/JavaScript/HTML教程。谢谢,它实际上并没有解决我的问题,但让我更接近一个解决方案。最后,我用提交按钮代替了按钮<代码>
谢谢,它实际上并没有解决我的问题,但让我更接近解决方案。最后,我用提交按钮代替了按钮<代码>