Php 将添加字段中的数据保存到javascript表单时出现问题
摘要:我正在尝试向一种组织成员的在线个人档案中添加字段,该档案是用javascript编写的。我对这门语言真的很陌生,所以我发现自己需要一些帮助 背景(工作原理):该脚本允许用户单击“添加”按钮,用基本字段(名字、姓氏、位置、照片等等)填写表单,然后通过php脚本将数据存储在mysql数据库中。一旦添加了此人,他们将进入一个显示照片和姓名的列表;个人资料可以通过点击每张照片进行编辑,用户可以根据需要添加个人资料。请参见下图了解界面(真实人物的图像/姓名已被显示,以保护无辜者免受……伤害): 我想做的(不起作用的):所有这些都很好…可能是因为我没有写那部分。当我试图将一组字段(所有权百分比、教育程度、技能、教授、奖项、社区、年数和薪酬)添加到原始字段正下方的弹出表单时,麻烦就来了:Php 将添加字段中的数据保存到javascript表单时出现问题,php,javascript,jquery,Php,Javascript,Jquery,摘要:我正在尝试向一种组织成员的在线个人档案中添加字段,该档案是用javascript编写的。我对这门语言真的很陌生,所以我发现自己需要一些帮助 背景(工作原理):该脚本允许用户单击“添加”按钮,用基本字段(名字、姓氏、位置、照片等等)填写表单,然后通过php脚本将数据存储在mysql数据库中。一旦添加了此人,他们将进入一个显示照片和姓名的列表;个人资料可以通过点击每张照片进行编辑,用户可以根据需要添加个人资料。请参见下图了解界面(真实人物的图像/姓名已被显示,以保护无辜者免受……伤害): 我
createForm: function(n) {
item = $("<table> \
<tr><th>Name</th><td class='twoinput'><input name='pfname' placeholder='Jane'/><input name='plname' placeholder='Smith'/></tr> \
<tr><th>Title</th><td><input name='ptitle' placeholder='Chief Executive Officer'/></tr> \
<tr><th>Short Bio</th><td><textarea name='pbio'/></textarea></td></tr> \
<tr><th>Photo</th><td><input id='photo_upload' name='photo'/> <input type='button' id='photo_button' value='Open Media Library'/></tr> \
<tr><td colspan='2'>(Optional) Upload a photo of <acronym title='Replace this with their first name?'>this person</acronym>. The bigger the better—don't worry, we'll scale this down for you.</td></tr> \
</table>\
<br/>\
<table>\
<tr><th>Education</th><td><textarea name='pedu'/></textarea></td></tr> \
<tr><th>Relevant Skills</th><td><textarea name='pskills'/></textarea></td></tr> \
<tr><th>Professional Experience</th><td><textarea name='pprof'/></textarea></td></tr> \
<tr><th>Awards & Recognition</th><td><textarea name='pawards'/></textarea></td></tr> \
<tr><th>Community Involvement</th><td><textarea name='pcommunity'/></textarea></td></tr> \
<tr><th>Years with the Company</th><td><input type='text' size='2' maxlength='2' name='pyears'/>years</td></tr>\
<tr><th>Compensation Details</th><td><textarea name='pcompensation'/></textarea></td></tr> \
</table>\
<br/>\
<table>\
<tr><td id='ownershipquestion' colspan='2'>Does this person have an ownership stake?</td><td id='ownershipbox'><input type='checkbox' id='part_owner' name='owner' value='1'/>Yes</td></tr>\
<tr><td id='ownershipperquestion' colspan='2'>What percentage does this person hold?</td><td id='ownershipperanswer'><input type='text' size='3' maxlength='3' id='ownership_percentage' name='ownership_percentage'/>%</td></tr>\
</table>");
if(n < upsmart.people.people.length) {
p = upsmart.people.people[n];
item.find("input[name=pfname]").attr("value",p.fname);
item.find("input[name=plname]").attr("value",p.lname);
item.find("input[name=ptitle]").attr("value",p.title);
item.find("textarea[name=pbio]").attr("value",p.bio);
item.find("input[name=photo]").attr("value",p.photo);
item.find("input[name=owner]").attr("value",p.owner);
item.find("input[name=ownership_percentage]").attr("value",p.ownership_percentage);
item.find("input[name=pedu").attr("value",p.edu);
item.find("input[name=pskills").attr("value",p.skills);
item.find("input[name=pprof").attr("value",p.prof);
item.find("input[name=pawards").attr("value",p.awards);
item.find("input[name=pcommunity").attr("value",p.community);
item.find("input[name=pyears").attr("value",p.years);
item.find("input[name=pcompensation").attr("value",p.compensation);
}
return item;
},
问题(它是如何工作的):
- 当我单击加号按钮时,这些新字段在弹出窗口中显示得很好
- …但不要保存任何数据,尽管它不会禁止在上述代码中存储“所有权百分比”上面列出的任何内容
- 由于存在这些新字段,我无法通过单击图像编辑任何现有信息(不会弹出任何内容)
- 保存表单时,无论是否有数据,每个新字段都会收到“Undefined Property”错误消息
RUJordan就我发布的关于“无法识别的表达错误”的另一个问题提供了一个虎头蛇尾的解决方案 资料来源: 问题是我的所有新表单字段都缺少右括号,所以
if(n < upsmart.people.people.length) {
p = upsmart.people.people[n];
item.find("input[name=pfname]").attr("value",p.fname);
item.find("input[name=plname]").attr("value",p.lname);
item.find("input[name=ptitle]").attr("value",p.title);
item.find("textarea[name=pbio]").attr("value",p.bio);
item.find("input[name=photo]").attr("value",p.photo);
item.find("input[name=owner]").attr("value",p.owner);
item.find("input[name=ownership_percentage]").attr("value",p.ownership_percentage);
item.find("input[name=pedu").attr("value",p.edu);
item.find("input[name=pskills").attr("value",p.skills);
item.find("input[name=pprof").attr("value",p.prof);
item.find("input[name=pawards").attr("value",p.awards);
item.find("input[name=pcommunity").attr("value",p.community);
item.find("input[name=pyears").attr("value",p.years);
item.find("input[name=pcompensation").attr("value",p.compensation);
}
if(n
变成了
if(n < upsmart.people.people.length) {
p = upsmart.people.people[n];
item.find("input[name=pfname]").attr("value",p.fname);
item.find("input[name=plname]").attr("value",p.lname);
item.find("input[name=ptitle]").attr("value",p.title);
item.find("textarea[name=pbio]").attr("value",p.bio);
item.find("input[name=photo]").attr("value",p.photo);
item.find("input[name=owner]").attr("value",p.owner);
item.find("input[name=ownership_percentage]").attr("value",p.ownership_percentage);
item.find("input[name=pedu]").attr("value",p.edu);
item.find("input[name=pskills]").attr("value",p.skills);
item.find("input[name=pprof]").attr("value",p.prof);
item.find("input[name=pawards]").attr("value",p.awards);
item.find("input[name=pcommunity]").attr("value",p.community);
item.find("input[name=pyears]").attr("value",p.years);
item.find("input[name=pcompensation]").attr("value",p.compensation);
}
if(n
person对象在创建后会发生什么情况?可能它必须发送到服务器的某个位置,服务器必须有一些php来解释它。你看过这些代码吗?@user1618143嗨,谢谢你的回答。javascript由php调用并返回一个数组。这对所有人来说都很好l当我添加一个新人时,如果我删除了新的字段,我可以编辑现有的配置文件。但是,有了新的字段,我不能。我将在上面的帖子中提供一个指向代码的链接。这是不对的。PHP无法调用javascript。PHP存在于服务器上,javascript存在于客户端-t如果没有某种中介,他们无法交谈。PHP可以构建一个运行一些javascript的网页,但是javascript无法在没有某种回调的情况下向服务器发送消息。幸运的是,你不必构建网络,它已经构建好了。你只需找到它。应该有一些javascript发送请求st到服务器,以及服务器上处理该请求的一些PHP。@user1618143哈,非常正确;感谢您的更正。情况如您上面所述。(我是
if(n < upsmart.people.people.length) {
p = upsmart.people.people[n];
item.find("input[name=pfname]").attr("value",p.fname);
item.find("input[name=plname]").attr("value",p.lname);
item.find("input[name=ptitle]").attr("value",p.title);
item.find("textarea[name=pbio]").attr("value",p.bio);
item.find("input[name=photo]").attr("value",p.photo);
item.find("input[name=owner]").attr("value",p.owner);
item.find("input[name=ownership_percentage]").attr("value",p.ownership_percentage);
item.find("input[name=pedu]").attr("value",p.edu);
item.find("input[name=pskills]").attr("value",p.skills);
item.find("input[name=pprof]").attr("value",p.prof);
item.find("input[name=pawards]").attr("value",p.awards);
item.find("input[name=pcommunity]").attr("value",p.community);
item.find("input[name=pyears]").attr("value",p.years);
item.find("input[name=pcompensation]").attr("value",p.compensation);
}