0

我有一个网站,可以帮助学生通过输入他们的课程来制定时间表。当他们点击一个按钮时,他们可以从下拉列表中选择课程,然后在右侧的框中输入班级#。我正在尝试使用 php 来获取框的内容,但它不起作用。部分问题可能是idjavascript为盒子分配了一个数字(如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>​

查询:

var x = 0;
 $(document).ready(function(){
 $("#add").click(function(){

   $('#boxes').append('<input type="text" id="' + ++x + '"><br>');  //the id isn't working
  });
 });

来自 schedule.php

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

3 回答 3

2

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

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

希望这可以帮助!

于 2012-08-06T13:43:37.597 回答
2

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

于 2012-08-06T13:43:44.890 回答
0

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

<input type="text" id="' + ++x + '" name="myNewInputs[]" />
于 2012-08-06T13:43:26.947 回答