1

有谁知道为什么所选复选框的值没有被回显?

Javascript代码:

<script src="jquery.min.js" type="text/javascript"></script>
<script src="jquery.js" type="text/javascript"></script>
<script src="jquery.form.js" type="text/javascript"></script>
<script language="javascript" type="text/javascript">
<!--
// wait for the DOM to be loaded 
$(document).ready(function()
{
    // bind 'vgsForm' and provide a simple callback function 
    $('#vgsForm').ajaxForm(function()
    {
        $('#Suggestion').load('process_answers.php');
    }); 
});

HTML 表单

<div id="Questions">
<form id="vgsForm" action="process_answers.php" method="get" >
<div id="Q1">
<label><input type="radio" name="q1option" value="Less than 16" />Less than 16</label><br />
<label><input type="radio" name="q1option" value="16 or more" />16 or more</label>
</div>

process_answers.php

echo('$_GET: '.print_r($_GET, true));

//Get Question 1
if (isset($_GET['q1option'])) 
{
    $q1option = $_GET['q1option'];
} 
else 
{
    $q1option = NULL;
}

echo("Selected: ".$q1option);

这是回应:

$_GET: 数组 ( ) 选择:

任何帮助表示赞赏

丹尼尔

PS 这是我得到 JavaScript 代码的地方http://malsup.com/jquery/form/

我是否需要任何额外的 JavaScript 代码才能使其工作?

4

1 回答 1

0

看来您在 HTML 和内联 JS 代码中都有问题。为您的表单尝试以下代码:

<div id="Questions">
<form id="vgsForm" action="process_answers.php" method="POST" >
   <label><input type="radio" name="q1option" value="Less than 16" />Less than 16</label><br />
   <label><input type="radio" name="q1option" value="16 or more" />16 or more</label>
   <input type="submit" value="Submit" />
</form>
</div>

HTML 可能看起来像您从链接中获得的那个。除了 jquery,您还必须包含来自http://malsup.github.com/jquery.form.js的脚本,它实现了表单 ajax 升级。

<html> 
<head> 
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7/jquery.js"></script> 
    <script src="http://malsup.github.com/jquery.form.js"></script> 

    <script> 
        // wait for the DOM to be loaded 
        $(document).ready(function() { 
            // bind 'vgsForm' in order to upgrade form to use ajax 
            $('#vgsForm').ajaxForm(function() { 
                alert("Form was sent successfully."); 
            }); 
        }); 
    </script> 
</head> 

至于process_answers.php,请确保您正在从 POST 全局数组中读取,因为我们已将其设置为表单中的方法:

echo('$_POST: '.print_r($_POST, true));    
//Get Question 1
if (isset($_POST['q1option'])) 
{
    $q1option = $_POST['q1option'];
} 
else 
{
    $q1option = NULL;
}

echo("Selected: ".$q1option);

希望有帮助。

于 2013-11-10T02:30:36.063 回答