2015-12-14 78 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; ?>; –