0

I am modifying a form element. I have a function that is passed some HTML corresponding to the form (a div with form elements).

I modify the form as

function modify_form($paypal_button, $payment_params) {
    $d = new DOMDocument();
    $d->loadHTML($paypal_button);
    $xpath = new DOMXPath($d);
    $itemno =  $xpath->query('//form[@name="buynow"]/input[@name="item_number"]');
    $itemno->item(0)->setAttribute('value', 'SomeNewVal');
    $itemname =  $xpath->query('//form[@name="buynow"]/input[@name="item_name"]');
    $itemname->item(0)->setAttribute('value', 'SomeNewTitle');
    paypal_button = $d->saveHTML();
    return paypal_button;
}

What I am trying to return is simply a string, same format as what I was passed. That is, my modified version of $paypal_button.

With above, a bunch of HTML opening and closing tags are added - such as

?xml version="1.0" standalone="yes"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<html><body>

Whereas I need the format to be untouched.

By the way, are XPath and DOM functions overkill for this? I mean, $paypal_button is not a lot of text by any means... That is an aside. At this point, just trying to figure out how to retrieve the modified markup after I do the two node modifications.

halfer
  • 19,824
  • 17
  • 99
  • 186
Brian
  • 561
  • 5
  • 16
  • 1
    Not exactly sure what you are after, but it may be https://stackoverflow.com/questions/4879946/how-to-savehtml-of-domdocument-without-html-wrapper – Nigel Ren Dec 19 '19 at 14:41
  • Perfect! That is exactly what I was looking for. – Brian Dec 19 '19 at 14:45

0 Answers0