Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 为什么我的Ajax表单没有提交正确的值?_Php_Jquery_Ajax_Forms - Fatal编程技术网

Php 为什么我的Ajax表单没有提交正确的值?

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&

我有一个工作表单,它将星级(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>
<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

并且,在此处对as
var 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();