0

送信する必要があるデータを含むフォームを取得しました。それを ajax で実行したいと考えています。ボタンの onclick イベントに応答する関数を取得しました。ボタンをクリックすると、firebug でいくつかの投稿データを取得しましたが、PHP スクリプトに到達しません。誰が何が悪いのか知っていますか?

JS:

function newItem() {
var dataSet = $("#createItem :input").serialize();


confirm(dataSet); //Below this code box is the output of this variable to check whether it is filled or not

    var request = $.ajax({
        type: "POST",
        url: "/earnings.php",
        data: dataSet,
        dataType: "json"
    });

    request.done(function(){
        $('.create_item').children(".row").slideUp('100', 'swing');
        $('.create_item').children("h2").slideUp('100', 'swing');
        confirm("succes");
    });

    request.fail(function(jqXHR, textStatus) {
        confirm( "Request failed:" + textStatus );
    });
}

フォームが完全に入力されたときの dataSet の結果: id=123&date=13-09-2013&amount=5&total=6%2C05&customer=HP&invoicenumber=0232159&quarter=1&description=Test

PHP:

<?php 

    include('includes/dbconn.php');

    function clean_up($string){
        $html = htmlspecialchars($string);
        $string = mysql_real_escape_string($html);
        return $string;
    }

    if($_POST){

        $date = clean_up($_POST['date']);
        $amount = clean_up($_POST['amount']);
        $total = clean_up($_POST['total']);
        $customer = clean_up($_POST['customer']);
        $invoicenumber = clean_up($_POST['invoicenumber']);
        $quarter = clean_up($_POST['quarter']);
        $description = clean_up($_POST['description']);

        $sql = ("INSERT INTO earnings (e_date, e_amount, e_total, e_customer, e_invoicenumber, e_quarter, e_description) 
            VALUES ($date, '$amount', '$total', '$customer', $invoicenumber, $quarter, '$description')");
        echo $sql;
        if($mysqli->query($sql) === true){
            echo("Successfully added");
        }else{
            echo "<br /> \n" . $mysqli->error;
        }
    }
?>

フォームは ajax がなくても正常に機能しますが、それを使用すると機能しません。

あなたの助けに感謝します!

4

3 に答える 3

1

このスニペット コードをお試しください...

<form id="F_login">
    <input type="text" name="email" placeholder="Email">
    <input type="password" name="password" placeholder="Password">
    <button id="btn_login" type="submit">Login</button>
</form>

$("#btn_login").click(function(){
    var parm = $("#F_login").serializeArray();
    $.ajax({
        type: 'POST',
        url: '/earnings.php',
        data: parm,
        success: function (data,status,xhr) {
            console.info("sukses");
        },
        error: function (error) {
            console.info("Error post : "+error);
        }
    });
});

これを試してみたら、私に返信してください...

于 2013-09-03T12:11:30.913 に答える
0

これを試して

<input type="text" id="foo"/>
<input type="text"  id="bar"/>
<input type="button" id="btnSubmit" value="New Item"/>


<script type="text/javascript">
    $(function() {
$("#btnSubmit").click(function(){
try
  {
    $.post("my php page address",
      {
         'foo':$("#foo").val().trim(),
         'bar':$("#bar").val().trim()
     }, function(data){
           data=data.trim();
      //   alert(data);
// this  data is data that the server sends back in case of ajax call you 
//can send any type of data whether json or json array or any other type 
//of data

         });
    }
    catch(ex)
    {
        alert(ex);
    }
  });


});
</script>
于 2015-03-04T18:48:42.860 に答える