【问题标题】:Javascript not submitting data to phpJavascript未向php提交数据
【发布时间】:2020-02-07 17:23:29
【问题描述】:

您好,我是所有这些表单以及 php 和 javascript 的新手。 我只是对这段代码做了一些修改。但我不能让它运行一个 php 文件。 我不知道为什么?请帮忙。在我修改之前它运行成功。

发送数据到sendotp.php的javascript函数

function send_otp(){
    var mobile=jQuery('#mobile').val();
    var email=jQuery('#email').val();
    jQuery.ajax({
        url:'sendotp.php',
        type:'post',
        data:{'mobile='+mobile,'email='+email}
        success:function(result){
            if(result=='1'){
                jQuery('.second_box').show();
                jQuery('.first_box').hide();
            }
            if(result=='not_exist'){
                jQuery('#email_error').html('Please enter valid mobile or E-mail');
            }
        }
    });
}

检查otp的javascript函数是

function submit_otp(){
    var otp=jQuery('#otp').val();
    var eotp=jQuery('#eotp').val();
    jQuery.ajax({
        url:'checkotp.php',
        type:'post',
        data:{'otp='+otp,'eotp='+eotp},
        success:function(result){
            if(result=='yes'){
                window.location='savedata.php'
            }
            if(result=='Please enter correct otp.'){
                jQuery('#otp_error').html('Please enter valid otp');
            }
        }
    });
}

html代码是

<div class="login-form">
<form  method="post">
    <h2 class="text-center">Alumni Authorization</h2>       
    <div class="form-group first_box">
        <input type="text" id="mobile" class="form-control" placeholder="10 Digit Mobile No" required="required">
        <span id="email_error" class="field_error"></span>
        <input type="text" id="email" class="form-control" placeholder="Enter E-mail" required="required">
        <span id="email_error" class="field_error"></span>
    </div>
    <div class="form-group first_box">
        <button type="button" class="btn btn-primary btn-block" onclick="send_otp()">Send OTP</button>
    </div>
    <div class="form-group second_box">
        <input type="text" id="otp" class="form-control" placeholder="Mobile OTP" required="required">
        <span id="otp_error" class="field_error"></span>
        <input type="text" id="eotp" class="form-control" placeholder="E-mail OTP" required="required">
        <span id="otp_error" class="field_error"></span>
    </div>
    <div class="form-group second_box">
        <button type="button" class="btn btn-primary btn-block" onclick="submit_otp()">Submit OTP</button>
    </div>       
</form>

【问题讨论】:

  • 你在调用submit_otp,但函数名是send_otp..?
  • “但我不能让它运行一个 php 文件” - 你是怎么确定的?您是否检查过浏览器控制台(在开发工具下)是否有错误?您还可以在运行代码时检查网络选项卡(也在您的浏览器开发工具下),以查看它是否发出请求以及实际返回的内容。
  • 似乎#mobile 和#email 绑定到send_top 函数,而#otp 和#eotp 绑定到submit_otp 函数。我认为您在那里使用了不正确的端点或不正确的功能。
  • @MagnusEriksson 我检查了它,它没有向 php 发出请求。
  • 我们也可以看看那个 php 文件吗?

标签: javascript php html ajax forms


【解决方案1】:

对不起,这是一个简单的错误。

修正的部分是

jQuery.ajax({
    url:'checkotp.php',
    type:'post',
    data:{'otp':otp,'eotp':eotp},

【讨论】:

    【解决方案2】:

    尝试更改发送到后端的数据格式 作为 json 格式。它绑定与给定相关的值 属性。

    function submit_otp(){
    var otp=jQuery('#otp').val();
    var eotp=jQuery('#eotp').val();
    jQuery.ajax({
        url:'checkotp.php',
        type:'post',
        data:{otp: otp, eotp: eotp}, // Declare data in JSON format
        success:function(result){
            if(result=='yes'){
                window.location='savedata.php'
            }
            if(result=='Please enter correct otp.'){
                jQuery('#otp_error').html('Please enter valid otp');
            }
        }
    });
    }
    

    【讨论】:

    • data:{otp: otp, eotp: eotp}, // Declare data as a JSON Object — 那里没有 JSON。那是一个 JavaScript 对象。
    【解决方案3】:

    请使用如下代码

    jQuery.ajax({
      url:'sendotp.php',
      type:'POST',
      data:{mobile:mobile,email:email}
      success:function(result){
        console.log(result);
        if(result=='1'){
            jQuery('.second_box').show();
            jQuery('.first_box').hide();
        }
        if(result=='not_exist'){
            jQuery('#email_error').html('Please enter valid mobile or E-mail');
        }
    }
    });
    

    【讨论】:

      【解决方案4】:

      这可能与您在 ajax 调用中发送数据的方式有关。 您正在发送一个字符串而不是一组参数。 试试这个语法:

       // code
       type:'post',
       data:{
         'otp':otp,
         'eotp':eotp
       },
       success:function(result){
       //rest of code
      

      编辑:我忘记了参数上的引号。它说“函数未定义”是因为它试图将 otp 评估为一个函数,而它只是一个变量。

      【讨论】:

      • 它说功能未定义。我是新手。不知道为什么?
      猜你喜欢
      • 2014-06-20
      • 2017-09-11
      • 1970-01-01
      • 2017-03-27
      • 1970-01-01
      • 2018-12-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多