gpt4 book ai didi

php - 在 PHP 中访问 javascript DOM 对象

转载 作者:行者123 更新时间:2023-11-30 06:09:18 25 4
gpt4 key购买 nike

我有一个 javascript 代码可以帮助我在表中动态创建一行又一行,并从该表中删除一行。每行有四个单元格。例如,单元格 1 包含一个文本区域。为了区分第 1 行的 cell1 和第 2 行的 cell1,我将单元格 1 重命名为 cell1.name= cell1.name + '_' + row.rowIndex。

我创建了一个提交按钮,以便我可以读取用户在表的行中输入的数据,并尝试打印 $_GET。但里面什么也没有。我如何在 PHP 中访问我的 DOM 对象?

非常感谢您的帮助。

我的 HTML + PHP 代码

<body >

<?php
if (isset($_GET['Enter'])){
print_r($_GET);
}

?>

<h1> Create an Item </h1>
<form method="GET" action="func.html">
<table align="center" border = "2" cellspacing ="0" cellpadding="3" id="table">
<tr><td><b>Functionality Name:</b></td> <td><b>Description:</b></td> <td><b>Status:</b></td> <td><input type="button" Name= "Ajouter" Value="Ajouter" onclick="go()"></td></tr>

</table>
<input type="submit" name="submit" value="Enter">
</form>
</body>

和我的 Javascript 代码:

<script>

function getXhr(){
var xhr = null;
if(window.XMLHttpRequest) // Firefox and others
xhr = new XMLHttpRequest();
else if(window.ActiveXObject){ // Internet Explorer
try {
xhr = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
xhr = new ActiveXObject("Microsoft.XMLHTTP");
}
}
else { // XMLHttpRequest not supported by your browser
alert(" Your browser does not support XMLHTTPRequest objects...");
xhr = false;
}
return xhr
}

/**
* method called when the user clicks on the button
*/
function go(){
var xhr = getXhr()
// We defined what we gonna do with the response
xhr.onreadystatechange = function(){
// We do somthing once the server's response is OK
if(xhr.readyState == 4 && xhr.status == 200){
var body = document.getElementsByTagName("body")[0];

// Retrieve <table> ID and create a <tbody> element

var tbl = document.getElementById("table");
var tblBody = document.createElement("tbody");
var row = document.createElement("tr");

var cell_1 = document.createElement("td");
var cell_2 = document.createElement("td");
var cell_3 = document.createElement("td");
var cell_4 = document.createElement("td");

// Create the first cell which is a text zone
var cell1=document.createElement("input");
cell1.type="text";
cell1.name="fname";
cell1.size="20";
cell1.maxlength="50";
cell_1.appendChild(cell1);

// Create the second cell which is a text area
var cell2=document.createElement("textarea");
cell2.name="fdescription";
cell2.rows="2";
cell2.cols="30";
cell_2.appendChild(cell2);

// Create the second cell which is a combo box
var cell3 = document.createElement("div");
cell3.id="rs";
cell3.innerHTML=xhr.responseText;
cell_3.appendChild(cell3);


// Create the fourth cell which is a button
var cell4=document.createElement("input");
cell4.type="button";
cell4.value="Delete"
cell4.onclick=delRow;
cell_4.appendChild(cell4);

// add cells to the row
row.appendChild(cell_1);
row.appendChild(cell_2);
row.appendChild(cell_3);
row.appendChild(cell_4);

// add the row to the end of the table body
tblBody.appendChild(row);

// put the <tbody> in the <table>
tbl.appendChild(tblBody);

// Rename cells with the row index
var ind=row.rowIndex;
var liste_fname = row.getElementsByTagName("input");
for(i=0; i < liste_fname.length; i++)
{
if(liste_fname[i].name == "fname")
{
liste_fname[i].name = liste_fname[i].name + "_" + ind; //give fname_1, fname_2, fname_3, ...

}
}

var fd = row.getElementsByTagName("textarea");
fd[0].name = fd[0].name + "_" + ind;

var cd = row.getElementsByTagName("div");
cd[0].id = cd[0].id + "_" + ind;

var selectname = row.getElementsByTagName("select");
selectname[0].name = selectname[0].name + "_" + ind;

// appends <table> into <body>
body.appendChild(tbl);

// sets the border attribute of tbl to 1;
tbl.setAttribute("border", "1");

}
}

xhr.open("GET","fstatus.php",true);
xhr.send(null);
}
function delRow(){
var i= this.parentNode.parentNode.rowIndex;
document.getElementById('table').deleteRow(i);
}
</script>

最好的问候,

比利

最佳答案

因为 PHP 是服务器端而 Javascript 是客户端,您不能直接访问页面上的元素。

为了访问您需要通过 FORM 或某些 AJAX 回传到服务器的元素。

您可能会查看 jQuery帮助您做到这一点,因为它可以更轻松地调用您的 PHP 程序和操作 DOM。

关于php - 在 PHP 中访问 javascript DOM 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1044316/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com