Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/252.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 将添加字段中的数据保存到javascript表单时出现问题_Php_Javascript_Jquery - Fatal编程技术网

Php 将添加字段中的数据保存到javascript表单时出现问题

Php 将添加字段中的数据保存到javascript表单时出现问题,php,javascript,jquery,Php,Javascript,Jquery,摘要:我正在尝试向一种组织成员的在线个人档案中添加字段,该档案是用javascript编写的。我对这门语言真的很陌生,所以我发现自己需要一些帮助 背景(工作原理):该脚本允许用户单击“添加”按钮,用基本字段(名字、姓氏、位置、照片等等)填写表单,然后通过php脚本将数据存储在mysql数据库中。一旦添加了此人,他们将进入一个显示照片和姓名的列表;个人资料可以通过点击每张照片进行编辑,用户可以根据需要添加个人资料。请参见下图了解界面(真实人物的图像/姓名已被显示,以保护无辜者免受……伤害): 我

摘要:我正在尝试向一种组织成员的在线个人档案中添加字段,该档案是用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&mdash;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”错误消息
我已经检查了php保存脚本,一切正常;似乎我的javascript中缺少了一些东西,无法将这些新值传递到php要处理的数组中。。我想不出是什么导致了这种差异,我正在寻找新的想法

我们非常感谢您的帮助,并提前表示感谢

到包含

  • php函数调用javascript并接收其输出
  • 将输出保存到数据库的php函数
  • 讨论中的javascript

  • 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);
            }