0

AJAX を介して 2 つの変数を渡そうとしています。しかし、今のところ、そのうちの 1 つだけが渡されてデータベースに保存されます。

$image_id が渡されます。

$uid は渡されません。

<div class="interaction"><a href="#" class="like" id="<?php echo $image_id ?>"
xml-id="<?php echo $uid ?>"><?php echo number_format($image_likes) ?></a>
</div>    


<script type="text/javascript">
$(function() {
$(".like").click(function() 
{
var id = $(this).attr("id");
var uid = $(this).attr("uid");
var dataString = 'id='+ id +'&uid=' + uid ;

var parent = $(this);

$.ajax({
type: "POST",
url: "like.php",
data: dataString,
cache: false,

success: function(html)
{
parent.html(html);
}
});
return false;
});
});
</script>

like.php:

if(($_POST['id']) && ($_POST['uid'])) {
$image_id=$_POST['id'];
$user_id=$_POST['uid'];
*some mysql query*

ここで何が欠けていますか?

ps: いくつかのダミー値を使用して SQL クエリを試してみましたが、正常に動作します。

4

3 に答える 3

3

アンカーを変更できます:

<a href="#" class="like" id="<?php echo $image_id ?>" xml-id="<?php echo $user_id ?>">

に:

<a href="#" class="like" id="<?php echo $image_id ?>" data-uid="<?php echo $user_id ?>">

そして、次のように user_id の値を取得します。

var uid = $(this).data("uid");

Chrome の Web インスペクタのネットワーク タブを使用して、実際にサーバーに渡されるパラメータを確認できます。

于 2013-08-31T04:52:14.463 に答える
2

以下のコードを使用して、ajaxrequest で複数のパラメーターを渡します

parameters: {parametername1:value1,parametername2:value2},

次に、それらをphpで取得します

if(($_POST['parametername1']) && ($_POST['parametername2'])) {
$image_id=$_POST['parametername1'];
$user_id=$_POST['parametername2'];
*some mysql query*
于 2013-08-31T04:51:08.673 に答える
0

マークアップに「uid」という名前の属性がありません。

于 2013-08-31T04:52:19.493 に答える