Php 为什么我的Ajax表单没有提交正确的值?
我有一个工作表单,它将星级(1到5)保存到mysql数据库中。我现在正试图用ajax提交这个表单,但我只得到保存到数据库中的值“5”(所有其他变量都保存得很好)。谁能告诉我怎么了?非常感谢 形式Php 为什么我的Ajax表单没有提交正确的值?,php,jquery,ajax,forms,Php,Jquery,Ajax,Forms,我有一个工作表单,它将星级(1到5)保存到mysql数据库中。我现在正试图用ajax提交这个表单,但我只得到保存到数据库中的值“5”(所有其他变量都保存得很好)。谁能告诉我怎么了?非常感谢 形式 <form> <input class="star star-5" id="star-5" type="radio" name="star" value="5"/> <label class="star star-5" for="star-5"></label&
<form>
<input class="star star-5" id="star-5" type="radio" name="star" value="5"/>
<label class="star star-5" for="star-5"></label>
<input class="star star-4" id="star-4" type="radio" name="star" value="4"/>
<label class="star star-4" for="star-4"></label>
<input class="star star-3" id="star-3" type="radio" name="star" value="3"/>
<label class="star star-3" for="star-3"></label>
<input class="star star-2" id="star-2" type="radio" name="star" value="2"/>
<label class="star star-2" for="star-2"></label>
<input class="star star-1" id="star-1" type="radio" name="star" value="1"/>
<label class="star star-1" for="star-1"></label>
<input type="hidden" name="username" value="<?php echo $username;?>">
<input type="hidden" name="film_id" value="<?php echo $film_id;?>">
<button type="submit" id="FormSubmitRate" class="btn btn-primary btn-xs pull-right">Rate!</button>
</form>
换成
var star = $("[name=star]:checked").val();
现在您正在选择所有单选按钮,而不仅仅是选中的按钮,并且val()
每次都从集合中的第一个元素返回值,即5
。
您只需选择选中的单选按钮,并获取其值。您在
中错过了id
并且,在此处对asvar star=$(“[name=star]:选中”).val()进行更改代码>
改变
<input type="hidden" name="username" value="<?php echo $username;?>">
<input type="hidden" name="film_id" value="<?php echo $film_id;?>">
到
编辑的代码
<input type="hidden" id='username' name="username" value="<?php echo $username;?>">
<input type="hidden" id='film_id' name="film_id" value="<?php echo $film_id;?>">
var username=$("#username").val();
var film_id=$("#film_id").val();
var star=$("[name=star]:checked").val();
您的问题是这一行:
var star=$("[name=star]").val();
它将选择所有名为“star”的按钮,并为您提供其中一个按钮的值(可能是第一个,因为您总是得到5)
请尝试此操作以仅获取所选的一个:
var star=$("[name=star]:checked").val();
通过以下方式更改var star
:
var star=$("[name=star]:checked").val();
可能的复制品:嗨@adeno先生,我有个疑问。他如何使用name
获取价值。由于,id
在
中不存在,您是对的,在发布的代码中元素缺少id,但OP也声称所有其他变量都保存得很好
,所以我只是假设这是一个输入错误。Ok Ok Ok。我只是问干杯。没问题,我只是回答,我确实觉得奇怪,OP用不存在的选择器获取了所有正确的变量,但他就是这么说的?
var star=$("[name=star]:checked").val();
<input type="hidden" id='username' name="username" value="<?php echo $username;?>">
<input type="hidden" id='film_id' name="film_id" value="<?php echo $film_id;?>">
var username=$("#username").val();
var film_id=$("#film_id").val();
var star=$("[name=star]:checked").val();
var star=$("[name=star]").val();
var star=$("[name=star]:checked").val();
var star=$("[name=star]:checked").val();