繁体   English   中英

如何获取ID并输入php foreach循环并通过Ajax发送到服务器?

[英]How to get id and type in php foreach loop and send to server via ajax?

所以我有2个文件index.php和changeLikeDislike.php。 我认为问题出在javascript尝试获取类型和ID,但我不知道该怎么做。 我的javascript函数在foreach-> li-> divs中被调用。 它之前是这样的: data: dataString,但是我也将schoolId添加到了ajax的数据中,所以现在就像这样data: {dataString:dataString, schoolId:schoolId},

index.php

<?php
                $last_id = 0;
                foreach ($list as $rs) {
                    $last_id = $rs['id']; // keep the last id for the paging
                    ?>
                    <li>
                        <div style="width:100%; color:#000;">
                            <?php echo '<div class="product_like thumb-div"><img src="like.png" class="rating-image " onclick=changeLikeDislike("like","'.$rs['id'].'")> <br><span id="product_like_'.$rs['id'].'">'.$rs['pLike'].'</span></div>';?>
                            <?php echo '<div class="product_dislike"><img src="dislike.png" class="rating-image" onclick=changeLikeDislike("dislike","'.$rs['id'].'")><br> <span id="product_dislike_'.$rs['id'].'">'.$rs['pDislike'].'</span></div>';?>
                        </div>
                    </li>
                    <?php
                }
                ?>

<script type="text/javascript">
//begin like and dislike
function changeLikeDislike(type,id){
  var dataString = 'id='+ id + '&type=' + type;
  $.ajax({
  type: "POST",
  url: "changeLikeDislike.php",
  data: {dataString:dataString, schoolId:schoolId},
  cache: false,
  success: function(result){
           if(result){
                console.log('working');
          }
    }
  });//end ajax
}

schoolId适用于数据,但不适用于ajax中的dataString。我将如何获取这些。 我的PHP文件供参考:

//checks if school page id was brought and stores into variable
if (isset($_POST['schoolId'])) {
    $schoolIdFinal =  $_POST['schoolId'];
}else {
    echo "nope";
}
if (isset($_POST['type'])) {
    $type =  $_POST['type'];
}else {
    echo "nope type";
}
if (isset($_POST['id'])) {
    $id =  $_POST['id'];
}else {
    echo "nope id";
}

我的页面回显了“ nope type nope id”

请更换

data: {dataString:dataString, schoolId:schoolId},

data: {type:type, id:id, schoolId:schoolId},

使参数与您的PHP脚本匹配。

data可以是查询字符串(如dataString )或json结构(如{type:type, id:id, schoolId:schoolId} )。

请参阅jQuery.ajax()的文档:“数据选项可以包含格式为key1 = value1&key2 = value2的查询字符串,也可以包含格式为{key1:'value1',key2:'value2'}的对象。

参见http://api.jquery.com/jquery.ajax/

问题出在数据支架中。 更改

data: {dataString:dataString, schoolId:schoolId}

data: {dataString:'dataString', schoolId:'schoolId'}

下次执行$ _REQUEST或$ _POST的print_r来查看要识别的字段,在这种情况下,看起来好像没有检测到任何内容。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM