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

时间:2012-08-06 13:30:34

标签: php javascript

我有一个网站,通过输入他们的课程帮助学生制定时间表。当他们点击按钮时,他们可以从下拉列表中选择课程,并在右侧的框中输入课程#。我试图使用PHP来获取该框的内容,但它不起作用。部分问题可能是该框的id被javascript分配了一个数字(如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'];

3 个答案:

答案 0 :(得分:2)

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

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

希望这有帮助!

答案 1 :(得分:2)

正如您在this question on 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属性。

答案 2 :(得分:0)

您应该为输入提供NAME属性。这就是PHP将用于索引输入的内容。

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