2012-03-25 38 views
0

我使用下面的代碼通過html按鈕發佈搜索值。但onlick似乎不起作用。無論是否點擊按鈕,該值都會發布。如何解決這個問題?Onlick按鈕總是張貼html按鈕的值

<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

上用onclick調用javascript函數。像onclick =「doSearch()」。很奇怪你在那裏做什麼,我真的不明白 – 2012-03-25 14:21:10

+0

'onlick =「<?php $ _POST ['search'] ='Urban';?>」' - 這個代碼甚至是_supposed_要做什麼? – David 2012-03-25 14:23:05

+0

它只是發佈按鈕值。我有不同的類別,我想讓按鈕或類別被按下時顯示結果。 – 2012-03-25 14:31:42

回答

2

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.'); 
     } 
    } 
?> 
+0

謝謝,它實際上並沒有解決我的問題,但讓我更接近解決方案。最後我使用了一個簡單的提交按鈕來代替按鈕。 '' – 2012-03-25 14:42:16

2

你在混合使用PHP和HTML,但這不會像你想要的那樣工作。在用戶瀏覽器中「執行」html時,PHP代碼在服務器上解釋。您可以提交表單並將值提供給服務器。

使用一個提交按鈕

<input type="submit"> 

或添加正確的onclick功能

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