我有一个网站,可以帮助学生通过输入课程来制定时间表。当他们点击一个按钮时,他们可以从下拉列表中选择课程,并在右侧的框中输入课程号。我正在尝试使用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[]" />