无法通过AJAX将数据发送到PHP文件

无法通过AJAX将数据发送到PHP文件,php,javascript,jquery,html,ajax,Php,Javascript,Jquery,Html,Ajax,我有一个表,其中一列中的所有行都有锚定链接 有关守则如下: <tbody> <?php foreach ($rowarr as $k => $v) { ?> <tr> <td><?php echo $k ?></td> <td> <div class="divBox"> &

我有一个表,其中一列中的所有行都有锚定链接

有关守则如下:

<tbody>
  <?php foreach ($rowarr as $k => $v) { ?>
    <tr>
      <td><?php echo $k ?></td>
      <td>
        <div class="divBox">                          
          <a id="vendorlink" data-toggle="modal" data-vendor="<?= $v ?>" href="#myModal"><?php echo $v; ?></a>
        </div>
      </td>
    </tr>
  <?php } ?>
</tbody>

我尝试使用AJAX将表中单击的链接中的供应商名称发送到一个模式,并尝试在模式中打印名称以供测试,但即使这样也没有发生

<script type="text/javascript">
  $('#myModal').modal('hide');
  $("#vendorlink").click(function(){
    var vendor = $(this).data('vendor');
    $('#myModal').on('shown', function(){                
        $.ajax({
          type: "GET",
          url: "ip.php",
          data:     "id=" + vendor,
          success: function(html){
            $("#modal-body").html(html);
            $('.countstable1').dataTable( {
              "sDom": "T<'row-fluid'<'span6'l><'span6'f>r>t<'row-fluid'<'span6'i><'span6'p>>",
              "sPaginationType": "bootstrap",
              "oLanguage": {
                "sLengthMenu": "_MENU_ records per page"
              },
              "aaSorting":[[0, "desc"]],
              "iDisplayLength": 10,
              "oTableTools": {
                    "sSwfPath": "swf/copy_csv_xls_pdf.swf",
                    "aButtons": ["csv", "pdf"]
                  }
            });
          }
      });              
    });
  });
</script>

$('#myModal').modal('hide');
$(“#供应商链接”)。单击(函数(){
var vendor=$(this).data('vendor');
$('#myModal')。在('show',function(){
$.ajax({
键入:“获取”,
url:“ip.php”,
数据:“id=”+供应商,
成功:函数(html){
$(“#模态体”).html(html);
$('.countstable1')。数据表({
“sDom”:“Tt”,
“sPaginationType”:“引导程序”,
“语言”:{
“sLengthMenu”:“\u MENU\u每页记录”
},
“aaSorting”:[[0,“desc”]],
“iDisplayLength”:10,
“可旋转工具”:{
“sSwfPath”:“swf/copy_csv_xls_pdf.swf”,
“阿布顿”:[“csv”,“pdf”]
}
});
}
});              
});
});
而ip.php文件目前只有这个

<?php

$vendor = $_GET['id'];

echo $vendor;
?>

但是在模式中,我只看到默认的引导标记代码,其中没有任何内容

这是默认的引导标记代码-


有什么不对劲吗?为什么供应商没有传递到PHP文件?

如果html文件中的所有链接都设置了相同的id,这将无法正常工作,最好在所有链接中添加一个事件。

数据属性的定义如下:

data: {id: vendor},
编辑。打开并替换:

<a id="vendorlink" data-toggle="modal" data-vendor="<?= $v ?>" href="#myModal"><?php echo $v; ?></a>

与:



和带有
$(“.vendorlink”)
$(.vendorlink”)
(因此您将影响所有条目)和
$(此).data('vendorlink')$(this.attr('id').replace('vendorlink'),'')替换代码>

在数据字段中去掉问号。@SamDufel-这似乎没有任何作用。还是一样的结果。你能看看firebug/chrome net panel/etc中的ajax请求吗?它应该看起来像
GEThttp://my-server.com/ip.php?id=xxx
@SamDufel-我不确定我看的是否正确,但我没有看到在CDT的网络选项卡中加载php脚本。你能详细说明一下吗?我是否应该将onclick事件添加到一个运行我现在在JS中的单击功能的标签上?我不知道这一点,我不太习惯JS,但是id用于唯一的项目,并且由于您有一个循环,它将打印出具有相同id的多个链接,所以您的脚本可能无法正常运行。我敢打赌,您最好以增量方式测试脚本。首先,找出您的脚本是否显示了模式(我不知道这是什么),然后尝试发送AJAX调用;您应该添加
console.log(html)
(或
alert(html);
)在
success
属性之后,检查是否实际发送了某些内容。好的,我在success:function(html){}函数中添加了它作为第一行,结果它在控制台中没有定义。但是我不得不把数据定义改成OP中的定义。OP是什么意思?所以,如果你把
数据:{id:vendor}
,也许你应该确认vendor不是空的?原始帖子。我确实尝试了
数据:{id:vendor}
。结果是空的。你确定这是GET的正确方法吗?此外,我是否正确地使用此代码
var vendor=$(this.data('vendor')或是否需要更改为其他内容?如果要检查
供应商
的设置是否正确,请执行
控制台.log
。我想密码没问题。对于URL,它应该是这样工作的,但是如果您想确定,请执行
URL:“ip.php?id=“+vendor
和no
data
属性。
<a id="vendorlink_<?=$v?>" class="vendorlink" data-toggle="modal" href="#myModal"><?=$v?></a>