0

How can I extract the value attribute of an input tag? Using SIMPLE HTML DOM let me give you an example:

<form action="#" method="post" name="test_form" id="test_form">
Name<input type="text" name="name" value="NaMe"/><br />

Address<input type="text" name="address" value="AdDrEsS"/><br />

<input type="hidden" value="sayantest" />
</form>

I want to extract just the value of hidden type input tag, not the others.

4

4 回答 4

4

您想将 id(以便您可以访问 javascript 中的值)以及名称(如果您想访问服务器上的值)放在您希望从中获取值的标记中。

例如

<input type="hidden" name="test" id="test" value="sayantest" />

那么你的javascript就像这样简单:

<script type="text/javascript">
  var val = document.getElementById('test').value;
  alert(val);
</script>
于 2009-11-20T16:40:39.770 回答
3

使用简单的 HTML DOM

你的意思是那个名字的PHP库吗?

如果是这样,您必须选择一种方法来识别输入。如果您无法更改标记以在所需的隐藏输入上添加idname,则必须想出类似“获取表单中隐藏类型的第一个输入”之类的东西:

$html= new simple_html_dom();
$html->load('<html><body<form action="#" method="post" name="test_form" id="test_form">Name<input type="text" name="name" value="NaMe"/><br />Address<input type="text" name="address" value="AdDrEsS"/><br /><input type="hidden" value="sayantest" /></form></body></html>');

$input= $html->find('#test_form input[type=hidden]', 0);
$input->value;
于 2009-11-20T16:51:18.967 回答
0

这是我想出的……完全使用您在最初问题中显示的内容。请注意,我所做的只是echo隐藏所有输入的值,test_form.htm您的原始值在哪里:

<?php
function scraping_form()
{
   // create HTML DOM
   $html = file_get_html('test_form.htm');

   // get input hidden value
   $aObj = $html->find('input[type="hidden"]');
   foreach ($aObj as $hKey=>$hidden)
   {
     $valueAttribute = $hidden->value;
     echo "*TEST* ".$hKey.": ".$valueAttribute."<br />";
   }

   // clean up memory
   $html->clear();
   unset($html);

   return;
}
// -----------------------------------------------------------------------------
// test it!
// user_agent header...
ini_set('user_agent', 'My-Application/2.5');
scraping_form();
?>
于 2011-07-01T21:47:23.737 回答
0

如前所述,最简单的方法是给隐藏的输入一个id属性,然后使用getElementById然后.value.getAttribute('value')选择它。

或者,如果您想获取页面上所有隐藏输入的值,或者无法注入您的 ID,您可以使用以下内容:

var inputs = document.getElementsByTagName('input');
for(var i = 0; i < inputs.length; i++){
    if(inputs[i].getAttribute('type') == 'hidden'){
        alert(inputs[i].getAttribute('value'));
    }
}
于 2009-11-20T16:45:42.373 回答