-1

私はこのスクリプトを持っています:

             var wall_user_id =  "<?php echo $_SESSION['user_id'];?>";

 $.ajax({
            type: "POST",
            url: "insert.php",
            data: "user_id=" + wall_user_id,
            success: function () {
                $('ul#posts').prepend(wall_post);

            }
        });//end success function

wall_user_id を php スクリプトに送信します。

      <?php
      require 'core/functions/init.php';

      $user_id = mysql_real_escape_string($_POST['user_id']);
      $sql = 'INSERT INTO wall (user_id) VALUES('.$user_id.')';
      mysql_query($sql);
      ?>

これはうまくいきますが、次のようにさらに値を追加しようとするとうまくいきません:

         var wall_user_id =  "<?php echo $_SESSION['user_id'];?>";
             var wall_userimage = "<?php echo $user_data['imagename']; ?>";

 $.ajax({
            type: "POST",
            url: "insert.php",
            data: "user_id=" + wall_user_id +"userimage="+ wall_userimage,
            success: function () {
                $('ul#posts').prepend(wall_post);

            }
        });//end success function

そしてinsert.php:

 <?php
      require 'core/functions/init.php';

      $user_id = mysql_real_escape_string($_POST['user_id']);
      $userimage = mysql_real_escape_string($_POST['userimage']);

      $sql = 'INSERT INTO wall (user_id, image) VALUES('.$user_id.','.$userimage.')';
      mysql_query($sql);
      ?>

データベースに値を挿入しません。私は何を間違っていますか?

4

3 に答える 3

4

で必要な数の値を渡すことができますdata

data: { user_id: wall_user_id, userimage: wall_userimage }

あなたの例では、&パラメーターを分離するために使用します:

data: "user_id=" + wall_user_id + "&userimage=" + wall_userimage

ただし、jQuery が値の URL エンコードを適切に処理するため、最初の方法が推奨される方法です。適切に実行したい場合は、あなたの例で次のように書く必要があります。

data: "user_id=" + encodeURIComponent(wall_user_id) + "&userimage=" + encodeURIComponent(wall_userimage)

これは明らかにコードが多すぎます。したがって、最初のアプローチを使用してください。

于 2012-08-19T09:41:05.743 に答える
1

データクエリ文字列が間違っています。あなたは忘れた&

data : "user_id=" + wall_user_id +"&userimage="+ wall_userimage

または、オブジェクトを使用できます

data : { 'user_id': wall_user_id, 'userimage': wall_userimage }
于 2012-08-19T09:49:27.723 に答える
0

そのように複数の変数を送信することはできません。以下のデータとして値を投稿しています: "user_id=" + wall_user_id +"userimage="+ wall_userimage

これは、複数の変数に対しては機能しません。以下のようなことができます

$.post(" 投稿先アドレス ",{ "user_id": wall_user_id , "userimage" : wall_userimage}, function(response) { ........... });

また

data:{ "user_id" : wall_user_id , "userimage" : wall_userimage }

データは配列として渡す必要があります

于 2012-08-19T09:50:46.507 に答える