1

ajax を使用して学生のプロファイルを更新しようとしていますが、スクリプトは正常に実行されています。

Jスクリプト:

<script type="text/javascript" src="http://ajax.googleapis.com/
ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$(".savestudent").click(function() {

    var _firstname=$("#firstname").html();
    var _lastname=$("#lastname").html();
    var _gender=$("#gender").html();
    var _location=$("#location").html();
    var _aboutme=$("#about").html();
    var _dob=$("#dob").html(); 

    var dataString= 'fname='+ _firstname + '&lname='+ _lastname + '&gender='+ _gender + '&location='+ _location + '&about='+ _aboutme + '&dob='+ _dob ;
    alert(dataString);

    $.ajax
    ({

    type: "POST",
    url: "savebasic.php",
    data: dataString,
    cache: false,
    success: function(html)
    {

        alert('success');
    },
    error: function(html)
    {


    }
    });
    });
});

</script>

savebasic.php:

<?php

include_once('controller/profile.controller.php');
$profileObject=new ProfileController();

        $fname=$_POST['fname'];
        $lname=$_POST['lname'];
        $gender='M';
        $loc=$_POST['location'];
        $about=$_POST['about'];
        $birth=$_POST['dob'];   

$upt=$profileObject->updateUserprofile('59',$fname,$lname,$birth,$gender,$loc,$about);

?>

savebasic.php に直接値を渡すと動作します。しかし、ajaxを通過している間は何もしません。

4

4 に答える 4

1

ajaxのデータフィールドを間違った方法で使用しています。やったほうがいい:

data:{'fname=': _firstname, 'lname=':_lastname,'gender=':_gender,'location=': _location}
于 2013-02-27T10:30:52.537 に答える
0

データ文字列はGETのように設定されます-通常の構文は次のようになります。

data: {'fname': _firstname, 'lname':_lastname .... }
于 2013-02-27T10:32:52.417 に答える
0

あなたのデータ部分が間違っています。dataType また、 I have edit your codeについて言及するのを忘れていました。

見てみな :

<script type="text/javascript" src="http://ajax.googleapis.com/
ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$(".savestudent").click(function() {

    var _firstname=$("#firstname").html();
    var _lastname=$("#lastname").html();
    var _gender=$("#gender").html();
    var _location=$("#location").html();
    var _aboutme=$("#about").html();
    var _dob=$("#dob").html(); 

   // var dataString= 'fname='+ _firstname + '&lname='+ _lastname + '&gender='+ _gender + //'&location='+ _location + '&about='+ _aboutme + '&dob='+ _dob ;
   // alert(dataString);

    $.ajax
    ({

    type: "POST",
    contentType: 'text/html',
dataType: 'text',
    url: "savebasic.php",
    data: {
      fname: _firstname, lname :_lastname, gender :_gender, location : _location 
      ,about : _aboutme , dob : _dob
    },
    cache: false,
    success: function(html)
    {

        alert('success');
    },
    error: function(html)
    {


    }
    });
    });
});

</script>

これにより、100% 正しい結果が得られます。

于 2013-02-27T10:37:08.683 に答える
0
Change your code to assign data in following way


<script type="text/javascript" src="http://ajax.googleapis.com/
ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$(".savestudent").click(function() {

    var _firstname=$("#firstname").html();
    var _lastname=$("#lastname").html();
    var _gender=$("#gender").html();
    var _location=$("#location").html();
    var _aboutme=$("#about").html();
    var _dob=$("#dob").html(); 

    var data= {     fname:_firstname,
                    lname:_lastname,
                    gender=: _gender ,
                    location:_location,
                    about: _aboutme,
                    dob: _dob};
    alert(data);

    $.ajax
    ({

    type: "POST",
    url: "savebasic.php",
    data: data,
    cache: false,
    success: function(html)
    {

        alert('success');
    },
    error: function(html)
    {


    }
    });
    });
});

</script>

また、要素から値を取得する方法も正しくありません。名、姓、その他のフィールドがテキスト ボックスにある場合は、次のようにアクセスする必要があります。

var _firstname=$("#firstname").val();

または、それらが span または div タグにある場合は、次のようなものにアクセスします

var _firstname=$("#firstname").text();
于 2013-02-27T10:34:36.380 に答える