如何通过id从HTML元素中提取文本并赋值给PHP变量?

5

我有这个:

<h4 class="modal-title" id="exampleModalLabel"> hello </h4>

我想使用id提取出hello这个单词并将其赋值给一个PHP变量,但我不知道如何操作。如果它是输入框就更容易了,但我必须使用一个不同的元素。

提取单词“mens”?请清楚地解释它。 - Karthik Keyan
PHP有一个专门用于此目的的DOMDocument对象。您想解析DOM并获取这些值。 - RightClick
假设您只有该字符串,可以使用strip_tags()函数仅保留hello。但是,您想通过使用其ID获取它的事实表明还有其他标记,因此您需要解析DOM。 - RightClick
不使用 JavaScript 对吧? - Karthik Keyan
1
我认为这里的信息有点不足。如果您正在尝试从页面中获取一个值,您可以使用JavaScript从div中获取该值,将其放入隐藏输入框中,然后提交带有该隐藏输入框的表单,并在服务器上的php代码中获取它。但是您也可能有一个具有一列HTML的CMS,您正在尝试解析并提取其中的值。你在做什么? - RightClick
显示剩余2条评论
3个回答

3
好的,Rene Limon,你已经知道了,PHP变量存在于服务器端,而文本“hello”存在于客户端。所以,你需要将值(“hello”或其他任何值)发送到服务器。可以使用Ajax来完成这个操作。下一个文件(sendhello.php)获取标记内的值并将其发送到服务器。第二个文件(sendhelloo.php)获取该值并将其存储在一个变量中。要测试我的代码,您需要创建两个具有给定名称的文本文件,复制粘贴代码,打开浏览器并输入“localhost/sendhello.php”:
<html>
  <head>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
    <script type = "text/javascript">
function myAjax () {
$.ajax( { type : 'POST',
          data : {'action':document.getElementById('my_h4').innerHTML },
          url  : 'sendhelloo.php',
          success: function ( data ) {
            alert( data );
          },
          error: function ( xhr ) {
            alert( "error" );
          }
        });
}
    </script>
  </head>
  <body>
    <h4 id="my_h4"> hellooo </h4>
    <br/>
    <button onclick="myAjax()">Send hello to server</button>
  </body>
</html>

sendhelloo.php

<?php
session_start();
$_SESSION["my_data"] = $_POST['action']; // STORE VALUE IN VARIABLE.
echo "data received = " . $_POST['action']; // RETURN VALUE TO CONFIRM.
?>

当我在本地机器上测试时,由于跨域策略,XMLHttpRequest被阻止了。但是一旦推送到Web服务器上,它就可以正常工作。谢谢! - thingEvery

0
<?php 
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$fltNo= $_REQUEST["txt_fltNo"];
} else{


 echo "<form action='' method=POST>
<input type=text name='txt_fltNo'>
<input type=submit value='Get Value'></form>";
}

?>

-5

你可以使用

document.getElementById('exampleModalLabel').innerHTML

这将返回hello

请参见fiddle

根据docs

Element.innerHTML属性设置或获取描述元素后代的HTML语法。

要将此分配给php变量,请尝试

<?php $text="<script>document.writeln(document.getElementById('exampleModalLabel').innerHTML);</script>";

更新:在看到您问题中的If it were an input would be easier but I have yo use a different element

使用document.getElementById('exampleModalLabel').innerHTML来设置隐藏输入字段的值,然后您可以像问题中所说的那样使用它。


@Lal需要在PHP变量中设置值。唯一的方法是使用Ajax来提交该值并将其存储在变量中。 - Karthik Keyan
在 JavaScript 运行之前,PHP 将会被完成并发送给客户端。这个答案无法将值传递到他的变量中。 - RightClick
它可以工作,但我只需要删除 echo 语句,因为它会产生错误。谢谢。 - Rene Limon
OP在评论中提到,删除echo后它可以正常工作。 - Lal
如果你对服务器端和客户端有基本的了解,你就知道这是行不通的。我们都在这里提供帮助,难道你不喜欢找到别人四年前留下的正确答案吗?所以看到有人更关心绿色勾号而不是提供可行的答案,有点让人难过。你见过在服务器上运行的 PHP 脚本能够在客户端运行 JavaScript 吗?这是错误的。我想我无法向你解释清楚。 - RightClick
显示剩余7条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接