2014-06-21 42 views
-1

嗯,我正在一個小的PHP腳本,並在管理面板中,我已經添加了一個頁面來管理評論。以下是評論的HTML標記:jquery和形式相同的名稱問題

<form name="form" action=""> 
<tr> 
<td>COMMENT ID</td><td><button value="0" name="choice">Delete</button><button value="1" name="choice">Accept</button></td> 
</form> 

對於每一個評論我使用下面的jQuery代碼發佈此信息到一個文件comment.php

<script type="text/javascript"> 
    $(document).ready(function(){ 
     $("#form").submit(function(){ 
      $.get("response.php", $(this).serialize(), function(a){ 
       $("#info").html(a) 
      }); 
      return false 
     }) 
    }); 
</script> 

我的問題是我不能讓choice使用此代碼的值$_REQUEST['choice'],因爲兩個<button>都具有相同的名稱,這對於表單來說是相同的。我怎樣才能解決這個問題 ?

+0

兩個按鈕都提交表單!對 ?您需要使用'$ .click()' – hutchbat

+0

爲每個按鈕創建一個單獨的事件,我該怎麼做?你應該知道這兩個按鈕都在同一個表單上,並且它們具有相同的名稱,但具有不同的值,我需要獲取單擊按鈕的值!我怎麼能做到這一點,請@hutchbat – user3756377

+0

作爲一個側面說明該HTML看起來無效...'​​'應該是內部的''

,不'' –

回答

1

的是在你的代碼中的一些錯誤:

1)你忘了把id屬性,你的JS呼籲

<form name="form" action=""> 

它改成這樣:

<form name="form" action="" id="form"> 

由於它具有相同的名稱,請使用.click()事件。

完整代碼:

<form name="form" action="" id="form"> 

    <table> 
     <tr> 
      <td>COMMENT ID</td> 
      <td> 
       <button value="0" name="choice">Delete</button> 
       <button value="1" name="choice">Accept</button> 
       <input type="hidden" name="id" value="100"> 
      </td> 
     </tr> 
    </table> 
</form> 

<script type="text/javascript" src="jquery.min.js"></script> 
<script type="text/javascript"> 
$(document).ready(function(){ 

    $("button[name='choice']").click(function(e){ 
     var form_data = {}; 
     form_data.choice = $(this).val(); 
     form_data.id = $(this).siblings('input[name="id"]').val(); 
     e.preventDefault(); // stops the normal submission 
     $.post("index.php", form_data, function(a){ 
      console.log(a); // check the values on browser console 
     }); 
    }); 

}); 
</script> 

在你的PHP:

if(isset($_POST['choice'])) { 
    $action = $_POST['choice']; 
    $data = $_POST; 
    // its inside $_POST['id']; 
    echo json_encode($data); 
    exit; 
} 

Sample Output

+0

我知道在將代碼複製到stakoverflow時發生錯誤,否則您的代碼不起作用@kevinabelita – user3756377

+0

@ user3756377我不明白你如何得到兩個不同的東西,而*複製* ...順便說一句,我們只能幫你關於你發佈的內容,我們沒有第六感..:)個人我不認爲張貼「*您的代碼不起作用*」下面的答案,指出你的錯誤是令人鼓舞的任何幫助.. –

+0

@TilwinJoy哈哈我很抱歉,但我真的需要你的幫助!告訴我如何使用兩個具有相同名稱的按鈕,但是當我只收到單擊的值時? – user3756377

1

您可以通過綁定Ajax請求button.click(),而不是form.submit()

$(function(){ // $(document).ready() shorthand 
    $("button[name=choice]").click(function(){ 
     var data = 'choice='+ $(this).val() + '&' + $(this).closest('form').serialize(); 
     $.get("response.php", data, function(a){ 
      $("#info").html(a) 
     }); 
     return false 
    }) 
}); 
做到這一點
+0

它不工作的兄弟! – user3756377

+0

我會在1秒內修復它。 – hutchbat

+0

我修復了代碼。現在試試 ! – hutchbat

相關問題