繁体   English   中英

聚合物铁形态响应

[英]Polymer Iron-Form response

我正在使用Polymer的Iron-Form组件来提交我创建的此表单,但是问题是来自php脚本的响应不会输出到实际的html。 我一直坚持如何做,并尝试了许多不同的方法。 我究竟做错了什么? 这是我的评论:

<dom-module id="user-signup">
  <template>
      <form is="iron-form" id="formGet" method="post" action="/core/register.php">
      <paper-input char-counter autoValidate="true" error-message="{{item.error_name}}" label="Username" maxlength="25" required name="username"></paper-input>
      <paper-input char-counter error-message="{{error_displayn}}" label="Display Name" maxlength="35" required name="displayname"></paper-input>
      <paper-input char-counter error-message="{{error_password}}" label="Password" maxlength="25" required type="password" name="password"></paper-input>
      <paper-input char-counter error-message="{{error_password}}" label="Confrim Password" maxlength="25" required type="password" name="cfmpassword"></paper-input>
      <gold-email-input class="paper-input-input" label="Email" required name="email" auto-validate error-message="{{error_email}}"></gold-email-input>

      <br />

      <br>

        <paper-button raised onclick="clickHandler(event)"><iron-icon icon="check"></iron-icon>Submit</paper-button>
    </form>

</template>

<script>

    function clickHandler(event) {
        Polymer.dom(event).localTarget.parentElement.submit();           
    }

    Polymer({
        is: 'user-signup',
        properties: {
            error_name: {
                type: String,
                value:"Username Is Invalid!"
            },
            error_displayn: {
                type: String,
                value:"Display Name Is Invalid!"
            },
            error_password: {
                type: String,
                value:"Password Is Invalid!"
            },
            error_email: {
                type: String,
                value:"Email Is Invalid!"
            }
        },

        listeners: {
            'iron-form-response': 'formResponse',
            'iron-form-submit': 'formSubmit',
            'iron-form-error': 'formError'
        },
        formSubmit: function(event) {
            var pmn = document.querySelector('#waitForResponse');
            pmn.setAttribute("opened", "true");
            console.log("Form was submitted");

        },
        formResponse: function(event) {
            setTimeout(function(){
            var pmn = document.querySelector('#waitForResponse');
            pmn.removeAttribute("opened");
            }, 5000)
            console.log('There was a response');
            var response = event.detail;
            alert(response);                
        },
        formError: function(event) {
            console.log('Form Error, no actual response');
            setTimeout(function(){document.querySelector('#errorToast').show();
            var pmn = document.querySelector('#waitForResponse');
            pmn.removeAttribute("opened");
            }, 5000)
        }
    });
</script>
</dom-module>

现在,侦听器开始工作,并且当php页面有响应时,将弹出警报,但提示:[Object object]。 这是PHP脚本:

<?php
     $data[] = array(
        "id" => $id, 
        "error_name" => $error_name,
        "success" => true
      );

     echo 'dd';
?>

我试图将$data作为json回显,但还是没有用。 我试图在Google和Stack上搜索它,但是什么也没找到。 我究竟做错了什么?

根据文档,您已将侦听器绑定到主机元素,而不是自身。

也许这会有所帮助:

    listeners: {
        'formGet.iron-form-response': 'formResponse',
        'formGet.iron-form-submit': 'formSubmit',
        'formGet.iron-form-error': 'formError'
    }

whats模型对象,您在php上成功的登录调用将返回?

您可以使用以下内容,假设JSON返回JS promise内部

$myPhpCallLogon.then(function(user) {   
  user.firstName...
  user.id...
  user.email...

    var polyListUser = document.querySelector('#userView');

    set watch vars in polyListUser element.... 
}

然后使用您的模板将名称,id,电子邮件等带入显示用户的元素的dom中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM