2011-12-21 56 views
-3

我想在我的查詢的「having」子句中使用變量bradio,但我不知道如何獲取jquery變量的內容並將其傳遞到我的sql查詢中。這是我的PHP文件的一個片段。你能告訴我怎麼做到這一點?PHP的 - 如何將jQuery變量的內容傳遞到SQL查詢?

感謝

$conn = mysql_connect("localhost","form-test","pass"); 
$db = mysql_select_db("form-test",$conn); 

?> 
    <script type="text/javascript"> 


    jQuery.noConflict(); 
    jQuery(function() 
    { 

    jQuery('#event_form_field-<?php echo $event_id; ?>').click(function() 
    { 
    var bradio= jQuery("input[type=radio]:checked").val() 
      alert(bradio); });}); 
      </script> 
<?php 

$query2 = "SELECT COUNT(wp_events_answer.answer) as rep, wp_events_answer.attendee_id as idq, wp_events_question.quota as quota2, wp_events_attendee.event_id as ev, wp_events_answer.answer as answ, wp_events_question.id as qst3 
    FROM wp_events_answer, wp_events_attendee, wp_events_question 
      WHERE wp_events_answer.question_id = wp_events_question.id AND wp_events_answer.attendee_id = wp_events_attendee.id 
    HAVING answer = 
    GROUP BY answ;"; 

$result2 = mysql_query($query2) or die(mysql_error()); 

while($row2 = mysql_fetch_row($result2)) { 

} 

?> 
+1

你的混合服務器和客戶端...不會工作。 嘗試通過表單或Ajax將您的客戶端(JS)數據提交給服務器。 – helle 2011-12-21 10:07:16

回答

5

您不能將兩者使用上面的方法在一個頁面中使用PHP和JavaScript代碼。問題是因爲PHP在服務器上執行,遠遠沒有任何JavaScript可以在客戶端上運行。因此,兩人不能說話。

此處的解決方案是向服務器上的PHP腳本發出AJAX請求,並將無線控件的值傳遞給它。然後這將返回所需的數據,然後您可以使用JavaScript在您的頁面上顯示。

例如:

$.post(
    'myScript.php', 
    'bradio=' + jQuery("input[type=radio]:checked").val(), 
    function(data) { 
     // process your result here 
    } 
); 
2

寫在另一個PHP文件中的查詢和使用GET或POST傳遞變量也許Ajax調用

2

不,你不能傳遞一個js變量以這種方式PHP的。 php代碼在頁面發送到瀏覽器之前執行,而js代碼執行後:您需要代之以沿請求傳遞bradio值的ajax調用(獲取或發佈)

1

要麼你需要發送POST請求並重新加載頁面或者你需要通過AJAX來傳遞變量的當前頁面和動態更改輸出。通過jQuery它非常簡單,通過http://api.jquery.com/jQuery.ajax/

0

您將需要從JavaScript($.get$.post)的請求,並通過此單選按鈕的值作爲參數發送AJAX請求。然後,在PHP端,您將能夠從$_GET$_POST陣列中獲得它。

+0

謝謝。你能給我一個小例子嗎? – user1073001 2011-12-21 10:15:10

+0

本主題中有一些示例。 – 2011-12-21 10:17:15

+0

謝謝。我做了HAVING answer ='「。$ _GET [」bradio「]。」'但它不起作用。 – user1073001 2011-12-21 10:28:35