获取按钮ID,发布到外部php文件并将外部文件加载到具有更新内容的div中

时间:2017-02-20 01:03:39

标签: javascript php jquery ajax

我是php,javascript,mysqli的新手,我也是这个论坛的新手。

我正在建立一个网站。 在这个网站上,我有一个页面上的按钮是由php while循环生成的,如下面的代码所示。每个都有自己的id作为循环的结果,如:

while ($row = mysqli_fetch_assoc($run_c)){

  $memberid = $row['ID'];
  $convoid = $row['c_id'];

  echo"
 <button class='convoid' onClick='getconvo($convoid);'>Open</button>
 ";
}

我真正想要实现的是:当我点击任何按钮时,从变量$ convoid中检测到特定ID VALUE,然后将VALUE发送到外部php文件。收到ID为VALUE的外部文件将加载到div中,如下面的代码所示,但这不会发生。到目前为止,这就是我所拥有的:

<div class='log'></div>

<script type='text/javascript'>
function getconvo(id){ 
id = id; 
$.ajax({ 
data: 'id=' + id,
url: 'fetch_convo.php', 
method: 'POST', // or GET 
success: function(data) { 
$(".log").load(fetch_convo.php);
}

});

}
</script>

我甚至在这里放置了单独的加载功能但仍然没有

<script type="text/javascript">
  $(document).ready(function(){
  $('.log').load('fetch_convo.php');
 });

</script>

要添加到这种情况,外部文件是一个php文件。结果是根据通过ajax传递给文件的id VALUE从mysqli查询中获取的。我已经回复了php文件中的结果,以便可以在我想要加载文件的div中显示某种数据。

while循环和外部文件正在工作(我通过手动输入id进行测试)但是如何将id VALUE发布到外部文件然后将该外部文件的结果加载到基于div的div中在id VALUE上。

任何帮助都会很棒。请记住,我是新人,我正在努力......

2 个答案:

答案 0 :(得分:0)

您可以按如下方式更改%% Undocumented Matlab % Link: http://undocumentedmatlab.com/blog/animated-busy-spinning-icon % R2010a and newer % NOTE: Create your own class which integrates this into a custom Java dialog box iconsClassName = 'com.mathworks.widgets.BusyAffordance$AffordanceSize'; iconsSizeEnums = javaMethod('values',iconsClassName); SIZE_32x32 = iconsSizeEnums(2); % (1) = 16x16, (2) = 32x32 jObj = com.mathworks.widgets.BusyAffordance(SIZE_32x32, 'testing...'); % icon, label jObj.setPaintsWhenStopped(true); % default = false jObj.useWhiteDots(false); % default = false (true is good for dark backgrounds) javacomponent(jObj.getComponent, [10,10,80,80], gcf); jObj.start; for i=1:1000, pause(0.01); % Just wasting time end jObj.stop; jObj.setBusyText('All done!'); 声明:

echo

使用您的代码,为按钮生成的HTML代码如下:

echo "<button class='convoid' onClick='getconvo(\"{$convoid}\");'>Open</button>";

以上开始寻找不存在的变量<button class="convoid" onclick="getconvo(c_id2);">Open</button> 。你宁愿想要这个:

c_id2

开始在浏览器中使用Javascript控制台记录错误并修复它们。

更新:摘要以演示我上面要描述的内容。

<button class="convoid" onclick="getconvo("c_id2");">Open</button>

答案 1 :(得分:0)

当您执行POST请求时,是否会在控制台中显示任何错误?请求是否成功到达服务器端?好像你做了两个请求,你真正想要的只有一次。当您在成功回调中进行.load()时,它永远不会发布数据ID。无论如何,你可以尝试下面的代码。

首先,最好将ID放入数据属性中,并注意到我们有一个类名convoid(我们需要这个):

echo" <button class='convoid' data-id='$convoid'>Open</button>";

然后我们将点击处理程序注册到类名convoid,如下所示:

// document ready
$( function () {
   // register click handler
   // this will attach to all elements with `convoid` class's name
   $(document).on('click', '.convoid', function () {

      var convoid = $( this ).data('id'); // get the ID from data-attribute

      // do post request using .load()
      // noticed that, we send together data during request
      $('.log').load('fetch_convo.php', {id : convoid}, function () {
           // do something when success
      });
   });
});