2015-12-14 65 views
0

我有一個表單,只要有人點擊一個單選按鈕,我想插入這個表單的值。沒有比這更好的藉口了,我不擅長jQuery。這是我到目前爲止所做的。jQuery AJAX函數沒有做任何事情

HTML:

<form> 
    <input type="radio" checked="true" id="q1r1" name="q1" value="Awesome"> 
    <label class="button1" for="q1r1">Awesome</label> 

    <input type="radio" id="q1r2" name="q1" value="Ok"> 
    <label class="button2" for="q1r2">Ok</label> 

    <input type="radio" id="q1r3" name="q1" value="Awful"> 
    <label class="button3" for="q1r3">Awful</label> 
</form> 

get.JSON:

$('#q1r1').on('click',function(){ 
    var get_var_name = $(this).val(); 
     $.getJSON('json/question1.php?team=<?php echo $teamid ?>',{q1:get_var_name},function(data,status){ 
      console.log(data); 
      if(status == 'success'){ 
       console.log(data); 
      } else { 
       alert('Status: ' + status); 
      } 
      }); 
     }); 

... JSON/question1.php:

<?php 
    require('db_connect.php'); 
    session_start(); 
    $uid = $_SESSION['uid']; 

    if($_GET['q1']) { 

     $teamid = $_GET['team']; 
     $insertq1 = $_GET['q1']; 

     $sql = "UPDATE result 
     SET q1='$insertq1' 
     WHERE userid='$uid' AND teamid='$teamid' "; 

     $result = $mysqli->query($sql); 

    } 
?> 

正如你可能看到的,我真的沒有擅長這一點,但這是我原計劃要發生的事情:

  1. 登錄的用戶選擇一個選項,真棒,OK或Awful。
  2. 如果沒有頁面刷新或點擊一個提交按鈕,get.JSON會自動用值爲teamid(保存在$ teamid)和q1(用戶選擇的值)的值來推動question1.php。
  3. php文件默默更新用戶數據庫的值,大家都很開心。

事情是什麼都沒有發生,當我點擊「真棒」截至目前,我不知道爲什麼。我一直在試圖遵循多個指南,但我不知道如何去解決這個問題。任何建議或幫助非常感謝。

親切的問候,密蘇里州

P.S!

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script> 

是包括在內。

+0

什麼也沒有發生,因爲現在'{Q1:get_var_name}'是不是有效的JavaScript(或PHP)。 – Draco18s

+0

@ Draco18s該語法有什麼問題? – Steve

+0

哦,對不起,我錯過了'get_var_name'作爲一個var對象。我看到它是某種「我不知道該放什麼東西」的TODO。 – Draco18s

回答

0

只需在您的輸入中添加onchange()(這種情況下的無線電類型)即可調用從url獲取數據而無需刷新頁面的javascript函數,我修改了您的代碼並使用php擁有。

你的HTML必須像

<form> 
     <input type="radio" checked="true" id="q1r1" name="q1" value="Awesome" onchange="GrabData(this)"> 
     <label class="button1" for="q1r1">Awesome</label> 

     <input type="radio" id="q1r2" name="q1" value="Ok" onchange="GrabData(this)"> 
     <label class="button2" for="q1r2">Ok</label> 

     <input type="radio" id="q1r3" name="q1" value="Awful" onchange="GrabData(this)"> 
     <label class="button3" for="q1r3">Awful</label> 
    </form> 

,那麼你可以通過添加

<script>.......</script> 

寫這段JavaScript的HTML代碼裏面或把它放在另一個文件的.js(不要忘記打電話給你html頁面)

JS代碼 - >

function GrabData(Passeddata){ 
    var radioValue = Passeddata.value; 
    var URL = "json/question1.php?q1=" + radioValue + "&teamid="<?php echo $teamid; ?>; 
    $.ajax({ 
     url : URL, 
     type : "GET", 
     dataType: 'json', 
     success : function(data) { 
     if (data == "") { 
      alert("data is empty"); 
     }else{ 
      console.log('got your data back sir'); 
     } 
     } 
    }); 
} 

請讓我還是知道,如果它的工作,如果有一些其他的問題

+0

var URL =「http://json/question1.php?q1 =」+ dataYouWantToPass; –

+0

這將如何工作?如何在dataYouWantToPass中插入Awesome/OK/Awful,以及如何在該數據中添加teamid($ teamid)? –

+0

dataYouWantToPass可以是任何你想通過你的情況下,它將是 var URL =「json/question1.php?q1 =」+ radioValue +「&teamid =」<?php echo $ teamid; ?>; –