PHP生成的表单不提交AJAX

时间:2013-07-16 09:12:40

标签: php javascript jquery ajax html5

我在值中使用了ROWID,在值中使用了名称

<select name="opcoes"  onchange="showInfo(this.value)">
<option value=''>Select</option>
<option value=6>A</option>
<option value=2>F</option>
<option value=5>L</option>
<option value=1>M</option>
</select>

当你选择一个我有这个ajax代码用php创建一个表单时,

    function showInfo(str)
{


if (str=="")
  {

  document.getElementById("fields").innerHTML="";
  return;
  } 
if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xmlhttp.onreadystatechange=function()
  {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
    document.getElementById("fields").innerHTML=xmlhttp.responseText;
    }
  }
xmlhttp.open("GET","php/vendors/getRow.php?id="+str,true);
xmlhttp.send();
}

接下来,如果所选值不是“”,则转到php,

...连接到数据库...

echo "<form action='/php/vendors/edit.php' onSubmit=\"return confirm('Deseja editar?')\" method='post' >"; 
echo "<td><input type='text' name='editname'   value='".utf8_encode($linha[vendor_name])."'    ></td>";
echo "<td><input type='text' name='editemail'    value='".utf8_encode($linha[vendor_email])."'    ></td>";
echo "<td><input type='text' name='editwebsite'    value='".utf8_encode($linha[vendor_website])."'  ></td>";
echo "<td><input type='text' name='editphone'    value='".utf8_encode($linha[vendor_phone])."'    ></td>";
echo "<td><input type='text' name='editfax'     value='".utf8_encode($linha[vendor_fax])."'     ></td>";
echo "<td><input type='text' name='editadress'    value='".utf8_encode($linha[vendor_adress])."'   ></td>";
echo "<td><input type='text' name='editincharge'   value='".utf8_encode($linha[vendor_incharge])."'  ></td>";
echo "<td class='btn'><input class='edit' type='submit' value=''></td>";
echo "</form>";

它正确显示每个信息唯一的问题是当我点击输入提交按钮时它没有提交...任何想法为什么?

2 个答案:

答案 0 :(得分:2)

您正在生成无效的HTML。

表单可以包含整个表。表格单元格可以包含整行。表格不能存在于表格内,而是存在于该表格中的一组单元格中。

您的浏览器在表之后将表单移动到将表单控件保留在之后是错误恢复。

这意味着提交按钮不在表单内,因此无法提交表单。

答案 1 :(得分:0)

如果在文档中动态加载HTML表单,则它们不会在DOM中注册。 尝试使用jQuery委托jQuery Delegates

来完成这项工作