2012-11-18 34 views
1

我是新的網絡編程,我真的需要你的幫助。我有一個有幾個單選按鈕的表單,我想通過ajax帖子將它們插入到mysql中。我可以做一個按鈕,但不止一個,我不知道該怎麼做。多個單選按鈕ajax後

這是我的HTML和jQuery的一部分:

<html> 
    <script> 
     $(document).ready(function() { 
      $("#submit").click(function() { 
       var q1 = $('input[type="radio"]:checked').val(); 
       if ($('input[type="radio"]:checked').length == "0") { 
        alert("Select any value"); 
       } else { 
        $.ajax({ 
         type: "POST", 
         url: "ajax-check.php", 
         data: "q1=" + q1, 
         success: function() { 
          $("#msg").addClass('bg'); 
          $("#msg").html("value Entered"); 
         } 
        }); 
       } 
       return false; 
      }); 
     }); 
    </script> 
    </head> 
    <body> 
     <div id="msg"></div> 
     <form method="post" action=""> 
      <div class="Clear"> 
       question1:bla bla bla 
       <input class="star required" type="radio" name="q1" value="1" /> 
       <input class="star" type="radio" name="q1" value="2" /> 
       <input class="star" type="radio" name="q1" value="3" /> 
       <input class="star" type="radio" name="q1" value="4" /> 
       <input class="star" type="radio" name="q1" value="5" /> 
      </div> 
      <br /> 
      <div class="Clear"> 
       question2:bla bla bla 
       <input class="star required" type="radio" name="q2" value="1" /> 
       <input class="star" type="radio" name="q2" value="2" /> 
       <input class="star" type="radio" name="q2" value="3" /> 
       <input class="star" type="radio" name="q2" value="4" /> 
       <input class="star" type="radio" name="q2" value="5" /> 
      </div> 
      <input type="submit" name="submit" id="submit" /> 
     </form> 
    </body> 
</html> 

這裏是我如何在mysql中插入按鈕:

<?php 
$query = mysql_connect("localhost", "root", ""); 
mysql_select_db('db', $query); 

if (isset($_POST['q1'])) { 
    $choice1 = $_POST['q1']; 
    $choice2 = $_POST['q2']; 
    mysql_query("INSERT INTO tb VALUES('','$choice1')"); 
} 
?> 

我試圖做一個VAR爲每個按鈕但沒有工作。 我如何發佈所有的值在PHP中,我應該改變我的ajax和PHP? 謝謝!

這是我怎麼沒帶.php

<?php 
$query=mysql_connect("localhost","root",""); 
mysql_select_db('cosmote',$query); 
$q = array(); 
for ($i = 1; $i <= 2; $i++) { 
    $q[$i] = isset($_POST['q'+$i]) ? mysql_real_escape_string($_POST['q'+$i]) : 0; 
} 
mysql_query("INSERT INTO tabel (q1,q2) VALUES ('$q[1]','$q[2]')"); 
?> 
+0

您對代碼進行格式化的方式非常殘酷。我很抱歉,那是事實。你讓自己和其他人閱讀起來不必要的困難。代碼只寫了一次,但多次閱讀,因此應非常小心地使它美觀。我會在後面的評論中發佈它應該看起來像什麼。 –

+0

對不起,但現在我正在學習,非常感謝您的建議,並試圖幫助我。我會等着急的發表你的評論。你很棒! – user1820705

+0

這是如何格式化HTML和JavaScript:http://pastebin.com/fZt7sUcY –

回答

3

OK,這裏是如何做到這一點。首先,添加一個id到窗體:

<form id="myform" method="post" action=""> 

這將使它更容易通過jQuery訪問。然後,通過序列化形式作爲POST數據到PHP腳本:

$(document).ready(function() { 
    $("#submit").click(function() {     
     if ($('input[type="radio"]:checked').length == "0") { 
      alert("Select any value"); 
     } else { 
      $.ajax({ 
       type: "POST", 
       url: "ajax-check.php", 
       data: $("#myform").serialize(), 
       success: function() { 
        $("#msg").addClass('bg'); 
        $("#msg").html("value Entered"); 
       } 
      }); 
     } 
     return false; 
    }); 
}); 

之後,你可以在你的PHP腳本從$_POST陣列的單選按鈕值:

$_POST['q1'] // value of q1, can be 1-5 
$_POST['q2'] // value of q1, can be 1-5 

編輯:您的PHP代碼的問題在於,您使用+而不是.來連接字符串。寫這個代替:

$q[$i] = isset($_POST['q'.$i]) ? mysql_real_escape_string($_POST['q'.$i]) : 0; 

在此之後,我敢肯定它會工作。

+1

我看到你以後刪除的編輯(將它添加到這個問題而不是我的答案)。不要讓初學者的錯誤阻止你。一旦你掌握了它,編程將會非常有趣。 –

+0

好的,我現在就添加它,謝謝你的鼓勵,我很欣賞。 – user1820705

+0

我把它放在問題中......我錯在哪裏? – user1820705

1

你可以在表單上使用.serialize(),它會給你一個形式的值,如果你有規律地在提交data: $('form').serialize(),