它回显“空”..请帮助,我找不到问题!它们都由 AJAX 调用。第一个代码在表中创建一个新的 TR。我想使用 addnewTape() 函数将数据发送到另一个 php。但是 POST 数组是空的。
将新 TR 放入表中 (newtapeTR.php):
echo "<form id='tapeform".$_SESSION['newtape']."' method='POST' action=''>";
echo "<td> <input type='text' value='".$_SESSION['newtape']."' name='tapeid' readonly style='width: 25px;'></td>";
echo "<td> <input type='text' placeholder='citation' name='tapetext' style='width: 625px;'> </td>";
echo "<td id='tapeadd".$_SESSION['newtape']."' colspan='2'> <input type='button' onClick='addnewTape(".$_SESSION['newtape'].");' value='Add' class='button' ></td>";
echo "</form>";
表单提交,带有 AJAX 函数(示例:) addnewTape(32) newtape.php:
if (empty($_POST))
{
echo "empty";
}
else
{
$tapeid = $_POST['tapeid']; //this should be 32
$tapetext = $_POST['tapetext']; //this should be some text
}
阿贾克斯:
function addtapeTR(){
var xmlhttp;
var tapetableRef = document.getElementById('tapetitle');
if (window.XMLHttpRequest) {
xmlhttp = new XMLHttpRequest();
} else {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState==4 && xmlhttp.status==200) {
var newRow = tapetableRef.insertRow(-1);
var lastRowIndex = tapetableRef.rows.length-1;
var newID = lastRowIndex-1;
newID++;
newRow.id = "tape"+newID;
newRow.innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("POST","menu-main/menu-setting-submenu/newtapeTR.php",true);
xmlhttp.send();
}
这个 ajax 调用 newtape.php,并发送 id 和文本:
function addnewTape(id) {
var id = id-1;
if (tapeid[id].value=="" || tapetext[id].value=="") {
alert('Empty field!');
} else {
$.ajax({
type: "POST",
url: "menu-main/menu-setting-submenu/newtape.php",
data: $("#tapeform"+(id+1)).serialize(),
success: function(data){
$("#tape"+(id+1)).html(data);
}
});
}
}
回答:这里的数据出了点问题:
data: $("#tapeform"+(id+1)).serialize(),
我在没有 jQuery 和 GET 的情况下做到了。现在它起作用了。任何提示,这条线出了什么问题?