Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/376.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 获取按钮id,发布到外部php文件,并将外部文件加载到具有更新内容的div中_Javascript_Php_Jquery_Ajax - Fatal编程技术网

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

Javascript 获取按钮id,发布到外部php文件,并将外部文件加载到具有更新内容的div中,javascript,php,jquery,ajax,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=

总的来说,我对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>
 ";
}
while($row=mysqli\u fetch\u assoc($run\u c)){
$memberid=$row['ID'];
$convalid=$row['c_id'];
回声“
打开
";
}
我真正想要实现的是:当我单击任何按钮时,从变量$convalid中检测到特定的id值,然后将该值发送到外部php文件。接收到id值的外部文件将加载到一个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>

函数getconva(id){
id=id;
$.ajax({
数据:“id=”+id,
url:“fetch_conva.php”,
方法:“POST',//或GET”
成功:函数(数据){
$(“.log”).load(fetch_conva.php);
}
});
}
我甚至在这里放置了单独的加载函数,但仍然没有

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

</script>

$(文档).ready(函数(){
$('.log').load('fetch_conva.php');
});
另外,外部文件是一个php文件。结果是根据通过ajax传递到文件的id值从mysqli查询中获取的。我在php文件中回显了结果,以便在我希望加载文件的div中显示某种数据

while循环和外部文件正在工作(我通过手动输入id进行了测试),但是如何获取要发布到外部文件的id值,然后根据id值将该外部文件的结果加载到div中呢


任何帮助都将是巨大的。记住我是新来的,我正在努力

您能否将您的
echo
声明更改如下:

echo "<button class='convoid' onClick='getconvo(\"{$convoid}\");'>Open</button>";
<button class="convoid" onclick="getconvo(c_id2);">Open</button>
开始在浏览器中使用Javascript控制台来记录错误并修复它们

更新:演示我试图在上面描述的内容的片段。

<script>
    some_convo_id = "This is coming from the some_convo_id variable";
    function getconvo(convoid) {
        alert(convoid);
    }
</script>

<?php
$convoid = "some_convo_id";

echo "Below, when you click on 'Open', it passes 'some_convo_id' as a string to the function 'getconvo()'";
echo "<br>";
echo htmlspecialchars("<button class='convoid' onClick='getconvo(\"{$convoid}\");'>Open</button>");
echo "<br>";
echo "<button class='convoid' onClick='getconvo(\"{$convoid}\");'>Open</button>";

echo "<br><br>";

echo "Below, when you click on 'Open', it passes value of the variable some_convo_id as a string to the function 'getconvo()'";
echo htmlspecialchars("<button class='convoid' onClick='getconvo($convoid);'>Open</button>");
echo "<br>";
echo "<button class='convoid' onClick='getconvo($convoid);'>Open</button>";

?>

some\u-conva\u-id=“这来自some\u-conva\u-id变量”;
函数getconva(convalid){
警报(车队);
}

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

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


在执行POST请求时,控制台中是否显示任何错误?请求成功到达服务器端了吗?我想你只是忘了在
函数中加双引号。load
调用
getconva
函数。嗨,实际上这是可行的,但现在,当我单击按钮时,它只从php中的while循环中获取第一个id值(即,从php while循环中分配给变量$COVAID的第一个值)。我在外部php文件中回显了id值,以确保发生这种情况。在mysqli数据库中,它现在只有两条记录,并且在单击任何按钮时只检测第一条记录的第一个id值。为什么?我不知道c_id2是从何处获得的。您在我的代码中看到了吗?在何处?不,我在代码中没有看到。没有。我不知道您从数据库中获取了哪些值,这些值后来被分配给
$corpaid
,然后在生成的HTML中使用。作为一个例子,我提到了如何根据
$corpaid
的任意值生成HTML。其主要目的是传达它将开始显示对于值为$COVAID的变量,而不是将其视为字符串并将其传递给
getconva()
function。Javascript也会这么说,我在任何地方都看不到变量c_id2。好的。但我没有像您在Javascript中所说的那样收到错误。$convalid的值被识别,因为我提醒它确保。@maraj:我已经为您创建了一个PHP提琴。请检查它,我希望它能帮助您明确我正在尝试的内容解释一下。虽然你的问题已经解决了,但这个链接将帮助你了解更多关于PHP和JS的知识。如果fiddle链接出现问题,用代码更新答案。嘿,谢谢你的代码链接。我保留这个fiddle的想法,以备将来需要。
<script>
    some_convo_id = "This is coming from the some_convo_id variable";
    function getconvo(convoid) {
        alert(convoid);
    }
</script>

<?php
$convoid = "some_convo_id";

echo "Below, when you click on 'Open', it passes 'some_convo_id' as a string to the function 'getconvo()'";
echo "<br>";
echo htmlspecialchars("<button class='convoid' onClick='getconvo(\"{$convoid}\");'>Open</button>");
echo "<br>";
echo "<button class='convoid' onClick='getconvo(\"{$convoid}\");'>Open</button>";

echo "<br><br>";

echo "Below, when you click on 'Open', it passes value of the variable some_convo_id as a string to the function 'getconvo()'";
echo htmlspecialchars("<button class='convoid' onClick='getconvo($convoid);'>Open</button>");
echo "<br>";
echo "<button class='convoid' onClick='getconvo($convoid);'>Open</button>";

?>
echo" <button class='convoid' data-id='$convoid'>Open</button>";
// 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
      });
   });
});