我正在使用Ajax和jQuery和PHP。
当用户提交多部分表单的一部分时,结果将显示在新的div中。表格中有几个是/否单选按钮。但结果中没有显示“是”或“否”,而是“未定义”。关于我在这里做错了什么想法?
HTML
<div class="usedYesNo">
<h5>Question 1</h5>
<ul class="YesNo">
<li>
<input class="option-child" type="radio" name="YesNo1[]" value="Yes" >
<label for="Yes">Yes</label>
</li>
<li>
<input class="option-child" type="radio" name="YesNo1[]" value="No" >
<label for="No">No</label>
</li>
</ul>
</div>
<div class="usedYesNo">
<h5>Question 2</h5>
<ul class="YesNo">
<li>
<input class="option-child" type="radio" name="YesNo2[]" value="Yes" >
<label for="Yes">Yes</label>
</li>
<li>
<input class="option-child" type="radio" name="YesNo2[]" value="No" >
<label for="No">No</label>
</li>
</ul>
</div>
的jQuery
$(form).ajaxSubmit({
type: "POST",
data: {
YesNo1 : $('YesNo1').val(),
YesNo2 : $('YesNo2').val()
},
dataType: 'json',
url: './includes/ajaxtest3.php',
error: function() {alert("error!");},
success: $('#output2').html(data.message.join('<br />'));
//...
PHP
$return['message'] = array();
$return['message'][] = 'Answer to first question: ' . $_POST['YesNo1'];
$return['message'][] = 'Answer to second question: ' . $_POST['YesNo2'];
echo json_encode($return);
答案 0 :(得分:3)
你需要#
来获取包含在jQuery obj
$('#YesNo1').val(),
$('#YesNo2').val()
答案 1 :(得分:3)
您的选择器
$('YesNo1')
说要在元素
<YesNo1>
的标记
答案 2 :(得分:2)
你想要做的是按名称选择输入
$(form).ajaxSubmit({
type: "POST",
data: {
YesNo1 : $('input[name="YesNo1[]"]:checked').val();
YesNo2 : $('input[name="YesNo2[]"]:checked').val();
},
dataType: 'json',
url: './includes/ajaxtest3.php',
error: function() {alert("error!");},
success: $('#output2').html(data.message.join('<br />'));
//...
答案 3 :(得分:0)
您在调用jQuery时没有使用正确的选择器。
答案 4 :(得分:0)
我很确定您的问题是单选按钮的名称。为了简化操作,我会使用像Q1Yes,Q1No等命名结构,甚至尝试用你的问题来表达,如果选中单选按钮,则意味着用户回答是,并将其保持为未选中状态。您可以在此时将单选按钮的名称设为Question1和Question2。
答案 5 :(得分:0)
我用过这个过去非常成功。 您不需要将值存储在数组中。输入如下:
<input class="option-child" type="radio" name="YesNo1" value="Yes" >
<input class="option-child" type="radio" name="YesNo1" value="Yes" >
然后,您可以使用jquery拉取所选值的结果。
var YesNo1 =$("input[name=YesNo1]:checked").val();
YesNo1将包含所选选项的值
答案 6 :(得分:0)
您需要的选择器是:
$('input[name="YesNo1[]"]:checked').val();
$('input[name="YesNo2[]"]:checked').val();