2014-11-05 66 views
1

对不起,再次提问,但我检查了几乎所有关于该主题的问题,仍然无法解决它。这是我的form.php和creditform.php

Edit1。 将.get更改为.post

Edit2。 我在creditform.php中收到未定义变量“名称”,“电子邮件”,“地址”,“收入”等等的错误(简而言之) 我想要做的只是将所有输入插入表格在分贝。

HTML

<!-- End crumbs--> 
      <div class="container wrap wow fadeInUp"> 
      <div class="row"> 
      <div class="col-sm-5 col-md-6 left-app"> 
      <form id="form" action="php/creditform.php" method="post"> 
       <input type="text" placeholder="Name" name="name" required> 
       <input type="email" placeholder="Email" name="email" required> 
       <input type="text" placeholder="Address" name="address" required> 
       <input type="number" placeholder="Monthly income before taxes" name="income" required> 
       <input type="number" placeholder="Amount Needed" name="amount_needed" required> 
       <input type="number" placeholder="Phone" name="phone" required> 
      <div class="row"> 
      <div class="container"> 
       <input type="submit" name="submit" value="Submit" class="button"></div></div> 
      <div id="result"></div> 
      </form> 
      </div> 
       <script> 
       $(document).ready(function($) { 
        'use strict'; 

       $('#form').submit(function(event) { 
        event.preventDefault(); 
        var url = $(this).attr('action'); 
        var datos = $(this).serialize(); 
        $.post(url, datos, function(resultado) { 
        $('#result').html(resultado); 
        }); 
       }); 
       </script> 

form.php的

<?php 

include('db.config.php'); 

if ($_SERVER['REQUEST_METHOD'] == 'POST') { 
    $name = $email = $address = $income = $amount_needed = $phone = ''; 

if(isset($_POST['submit'])){ 

    $name = addslashes($_POST['name']); 
    $email = addslashes($_POST['email']); 
    $address = addslashes($_POST['address']); 
    $income = addslashes($_POST['income']); 
    $amount_needed = addslashes($_POST['amount_needed']); 
    $phone = addslashes($_POST['phone']); 

// check form fields 
if(empty($name)){ 
    $error .= 'Enter name <br />'; 
} 
if(empty($email)){ 
    $error .= 'Enter email <br />'; 
} 
// check if errors exist 
if(!empty($error)){ 
    echo $error;  
} else { 
    // process form as normal 

    $sql = "INSERT INTO `" . DBN . "`.`creditapp` (`name`, `email`, `address`, `income`, `amount_needed`, `phone`) VALUES ('$name', '$email', '$address', '$income', '$amount_needed', '$phone')"; 
    $db->Query($sql); 
} 
} 
} 
print_r($_POST); 

?> 

CREDITFORM.PHP

<?php 
if(isset($_POST['submit'])){ 

    $name = $_POST['name']; 
    $email = $_POST['email']; 
    $address = $_POST['address']; 
    $income = $_POST['income']; 
    $amount_needed = $_POST['amount_needed']; 
    $phone = $_POST['phone']; 
} 
print_r($_POST); 


?> 

很明显,我失去了一些东西,请大家指正... 感谢你的时间

+1

请发布您的呈现'

'的HTML。 – Dai 2014-11-05 19:33:15

+0

所以...什么是或不在发生什么? – 2014-11-05 19:33:31

+3

什么是'php/creditform.php'?为什么你在提交处理程序中使用'。.get(')应该是'$ .post('。 – 2014-11-05 19:34:34

回答

1

好的,我在ajax-json-php上练习得更多,最后这是我的解决方案和最新的代码。

感谢您的所有答案和建议。希望这也有助于某人。

仍然对任何改善的建议开放。

<?php 

include('db.config.php'); 

if(isset($_POST['submit'])){ 


$name = addslashes($_POST['name']); 
$email = addslashes($_POST['email']); 
$address = addslashes($_POST['address']); 
$income = addslashes($_POST['income']); 
$amount_needed = addslashes($_POST['amount_needed']); 
$phone = addslashes($_POST['phone']); 

// process form as normal 

$sql = "INSERT INTO `" . DBN . "`.`creditapp` (`name`, `email`, `address`, `income`, `amount_needed`, `phone`) VALUES ('$name', '$email', '$address', '$income', '$amount_needed', '$phone')"; 
$db->Query($sql); 

die(); 

<div class="container wrap wow fadeInUp"> 
    <div class="row"> 
    <div class="col-sm-5 col-md-6 left-app"> 
     <form id="form" action="creditapp.php" method="post"> 
      <input type="text" placeholder="Name" name="name" id="name" required> 
      <input type="email" placeholder="Email" name="email" id="email" required> 
      <input type="text" placeholder="Address" name="address" id="address" required> 
      <input type="text" placeholder="Monthly income before taxes" id="income" name="income" required> 
      <input type="text" placeholder="Amount Needed" name="amount_needed" id="amount_needed" required> 
      <input type="text" placeholder="Phone" name="phone" id="phone" required> 
     <div class="row"> 
     <div class="container"> 
      <input type="submit" name="submit" value="Submit" class="button sub"></div> 
     </div> 
     </form> 
     </div> 

    <script> 
    $(document).ready(function() { 

    $('.sub').click(function(e){ 
     e.preventDefault(); 
     var name = $('#name').val(), 
      email = $('#email').val(), 
      address = $('#address').val(), 
      income = $('#income').val(), 
      amount_needed = $('#amount_needed').val(), 
      phone = $('#phone').val(); 


     $.ajax({ 
      url: "creditapp.php", 
      type: "POST", 
      data: { 
       name: name, 
       email: email, 
       address: address, 
       income: income, 
       amount_needed: amount_needed, 
       phone: phone, 
       submit: "submit" 
      } 

      }).done(function(msg){ 
       $('.right-info').html('<pre>' + msg + '</pre>'); 
      }) 
     }) 
    }); 
</script> 
0

您遇到的问题是您的JavaScript。你等待提交和比你做一个ajax GET请求,你需要一个POST

<script> 
      $(document).ready(function($) { 
       'use strict'; 
      $('#form').submit(function(event) { 
       event.preventDefault(); 
       var url = $(this).attr('action'); 
       var datos = $(this).serialize(); 
       $.post(url, datos, function(resultado) { 
       $('#result').html(resultado); 
       }); 
      }); 
      </script> 
2

下面是一个简单Ajax调用的PHP文件由一个事件:点击一个按钮。

在你的榜样,你必须使用POST方法,因为你使用:

$_POST['something'];

JavaScript客户端:

$("body").on("click", "#mybutton", function() { 
      var mydata = $("#form").serialize(); 
      $.ajax({ 
       type: "POST", 
       url: "/api/api.php", 
       data: {data : mydata}, 
       timeout: 6e3, 
       error: function(a, b) { 
        if ("timeout" == b) $("#err-timedout").slideDown("slow"); else { 
         $("#err-state").slideDown("slow"); 
         $("#err-state").html("An error occurred: " + b); 
        } 
       }, 
       success: function(a) { 
        var e = $.parseJSON(a); 
        if (true == e["success"]) { 
         $("#result").html(e['message']); 
         // here is what you want, callback Php response content in Html DOM 
        } 
       } 
      }); 
      return false; 
     }); 

接下来在你的PHP代码根本没有成功的功能后做:

if ($result) { 
      echo json_encode(array(
       'success' => true, 
       'msg' => "Nice CallBack by Php sent to client Side by Ajax Call" 
      )); 
     } 
3

您需要发送一个POST请求$_POST数组以获取任何内容。

$.get(url, datos, function(resultado) { 
    $('#result').html(resultado); 
}); 

此发送请求GET(检查$_GET)。您想在此处使用$.post

$.post(url, datos, function(resultado) { 
    $('#result').html(resultado); 
}); 
+0

我改变了,但事情是我得到undefined变量errorform.php的错误 – Ekin 2014-11-05 19:39:31

+0

哪一个是未定义的?什么是*确切*错误? – 2014-11-05 19:46:44

+0

所有人的名字 - 电子邮件.... – Ekin 2014-11-05 19:47:37

相关问题