There's a way you can kind of hack some information into a payment button, but it's sort of ugly.
First, go to this page:
https://www.mybitcoin.com/login/merchant-tools.phpEnter an amount, and choose U.S. dollars. This allows MyBitcoin to handle the exchange rate.
Enter anything in the "payment note" field.
uncheck the "encrypt URI" option.
Creating the button now gives you the following code:
<form action="https://www.mybitcoin.com/sci/paypage.php" method="post" target="_blank">
<input type="hidden" name="amount" value="1.00">
<input type="hidden" name="currency" value="USD">
<input type="hidden" name="payee_bcaddr" value="1BEw6WXxmNHAjHA3JhbozBmUJorjzu9jCX">
<input type="hidden" name="payee_name" value="bitcoin2cash">
<input type="hidden" name="note" value="asfdsaf">
<input type="hidden" name="success_url" value="http://example.com/receivedpayment.php">
<input type="submit" name="submit" value="Purchase with Bitcoin">
</form>
Now, you can do a couple of different things. Any of those input type="hidden" fields can be changed to a text box, so the user can enter a value. Alternatively, you keep those values hidden but dynamically fill them from some source, like a database.
A simple example...
<form action="https://www.mybitcoin.com/sci/paypage.php" method="post" target="_blank">
<input type="textbox" name="amount">
<select name="currency"><option>USD</option><option>BTC</option></select>
<input type="hidden" name="payee_bcaddr" value="1BEw6WXxmNHAjHA3JhbozBmUJorjzu9jCX">
<input type="hidden" name="payee_name" value="bitcoin2cash">
<input type="textbox" name="note" value="Customer email address here...">
<input type="hidden" name="success_url" value="http://example.com/receivedpayment.php">
<input type="submit" name="submit" value="Purchase with Bitcoin">
</form>
gives you something like this:
edit... I'm actually not sure what information MyBitcoin posts back to the success_url, but I assume it has the "note" data in it.