简体   繁体   English

如何将从循环中获得的 Ajax 变量附加到<a href='' '/a>标签中</a>

[英]How to append a Ajax variable obtained from a loop into a <a href='' '/a> tag

Hi everyone i'm new to Ajax,i'm using ajax to get values from my database in form of an object array from a separate PHP file and displaying them in a table,everything works fine,but i want to create a link and append the ID obtained from the array so that i can send a GET request to another PHP file which will act upon that particular row.大家好,我是 Ajax 的新手,我正在使用 ajax 从我的数据库中以对象数组的形式从单独的 PHP 文件中获取值并将它们显示在表中,一切正常,但我想创建一个链接和附加从数组中获得的 ID,以便我可以向另一个 PHP 文件发送 GET 请求,该文件将对该特定行进行操作。

code for the PHP File PHP 文件的代码

<?php
include 'Module/Credentials.php';
$sql="SELECT * FROM queries";
$query=  mysqli_query($connection, $sql) or die(mysqli_error($connection));
$data = array();
while ($row = mysqli_fetch_object($query))
{
    array_push($data, $row);
}
echo json_encode($data);
`
Ajax code

javascript
 `   var ajax=new XMLHttpRequest();
                    var method="GET";
                    var url="getMessages.php";
                    var asynchronous=true;
                    ajax.open(method, url,asynchronous);
                    ajax.send();
                    ajax.onreadystatechange=function(){
                        if(this.readyState==4 && this.status==200){
                          var data=JSON.parse(this.responseText);
                           console.log(data);
                           var html="";
                           for(var b=0;b<data.length;b++){
                               var ID=data[b].ID;
                               var name=data[b].name;
                               var email=data[b].email;
                               var subject=data[b].subject;
                               var message=data[b].message;
                               var link = "management.php?delete=";
                                $(document).ready(function(){ 
                                  $('.link').attr('href', link+ID);
                                });
                            console.log(data.length);
                                 html +="<tr>";
                                 html +="<td>"+"<a class='link' href=''>Delete</a>"+"</td>";
                                 html +="<td>" + name + "</td>";
                                 html +="<td>" + email + "</td>";
                                 html +="<td>" + subject + "</td>";
                                 html +="<td>" + message + "</td>";
                                html +="</tr>";
                               

                           }
                           document.getElementById("messages").innerHTML += html;
                        } 
                    }`

the ID on the link is not changing its just displaying a single ID=6

Solution

   ` var ajax=new XMLHttpRequest();
                    var method="GET";
                    var url="getMessages.php";
                    var asynchronous=true;
                    ajax.open(method, url,asynchronous);
                    ajax.send();
                    ajax.onreadystatechange=function(){
                        if(this.readyState==4 && this.status==200){
                          var data=JSON.parse(this.responseText);
                           console.log(data);
                           var html="";
                           for(var b=0;b<data.length;b++){
                               var ID=data[b].ID;
                               var name=data[b].name;
                               var email=data[b].email;
                               var subject=data[b].subject;
                               var message=data[b].message;
                               var link = `management.php?delete=${ID}`;
                                 html +="<tr>";
                                 html +=`<td><a href='${link}'>Delete</a></td>`;
                                 html +="<td>" + name + "</td>";
                                 html +="<td>" + email + "</td>";
                                 html +="<td>" + subject + "</td>";
                                 html +="<td>" + message + "</td>";
                                html +="</tr>";
                               

                           }
                           document.getElementById("messages").innerHTML += html;
                           
                        }
                    }`
but i'm getting error messages in NetBeans IDE 8.0.2 like
Expected an operand but found error
    `var link== `management.php?delete=${ID}`;`
Expected an operand but found error
    `html +=`<td><a href='${link}'>Delete</a></td>`;`
Expected eof but found error   ` }`

Try a Template Literal like so:像这样尝试模板文字:

var link = `management.php?delete=${ID}`;

And if you want it on the html如果你想要它在html

html +=`<td><a class='link' href='${link}'>Delete</a></td>`;

Please note that I'm using the back ticks `请注意,我正在使用反勾号`

More info here更多信息在这里

Before selecting a HTML element you have to create it.在选择 HTML 元素之前,您必须先创建它。 After creation you can manipulate.创建之后就可以操作了。

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

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