PHP post-id无法使用Javascript变量作为id


PHP post id not working using Javascript variable as ID

我有一个网站,可以帮助学生通过输入课程来制定时间表。当他们点击一个按钮时,他们可以从下拉列表中选择课程,并在右侧的框中输入课程号。我正在尝试使用php来获取盒子的内容,但它不起作用。部分问题可能是javascript为盒子的id分配了一个数字(如1、2、3)。

这是JSFIDDLE(只添加了1个类,我还没有添加2个类。第一个数字(比如100)来自下拉列表。)

HTML:

<form action='http://people.brandeis.edu/~rnewman/schedule.php' method='POST'>
<div id="boxes"></div>
<br>
<input type='button' value='Add Class' id='add' style='height: 40px;'>
<input type='submit' style='height: 40px;' value='Create Schedule'>
</form>​

JQUERY:

var x = 0;
 $(document).ready(function(){
 $("#add").click(function(){
   $('#boxes').append('<input type="text" id="' + ++x + '"><br>');  //the id isn't working
  });
 });

FROM schedule.php

echo $_POST['course'];
echo "<br>";
echo $_POST['0'];
echo $_POST['1'];
echo $_POST['2'];

我不是PHP人员,但框架通常会查找元素的name属性,而不是id属性。如果您在输入文本框中添加name属性,它应该可以工作:

$('#boxes').append('<input type="text" id="' + ++x + '" name="' + ++x + '"><br>');

希望这能有所帮助!

正如您在stackoverflow上看到的这个问题:

ID and NAME tokens must begin with a letter ([A-Za-z]) and may be followed 
by any number of letters, digits ([0-9]), hyphens ("-"), underscores ("_"), 
colons (":"), and periods (".").

所以,简而言之,你不能把你的id和数字一样,是的,就像其他人说的那样,你应该添加一个name属性。

您应该给输入一个NAME属性。这就是PHP将用来索引输入的内容。

<input type="text" id="' + ++x + '" name="myNewInputs[]" />