问题
This code works when running the application, but Dreamweaver is giving a syntax error. It doesn't like the question mark there. I like DW to be syntax error free. Is there a different way to write this? I have DW cs5.5 I can't upgrade Dreamweaver version.
if ( $('#postage6').val() == "Your Permit Standard" ) {
$('#postage6rate').val('<?php echo $your_permit_standard; ?>');
}
Putting a backslash before the question mark just makes it print like this, which is not right.
if ( $('#postage6').val() == "Your Permit Standard" ) {
$('#postage6rate').val('<\?php echo $your_permit_standard; ?>');
}
when it renders, there is supposed to be a value like this:
if ( $('#postage6').val() == "Your Permit Standard" ) {
$('#postage6rate').val('0.333');
}
Also this doesn't work:
if ( $('#postage6').val() == "Your Permit Standard" ) {
var somevar = "<?php echo $your_permit_standard; ?>";
$('#postage6rate').val(somevar);
}
The syntax error just transfers from the line where the PHP variable was to the new line where the PHP variable is.
回答1:
You could define the value in a separate php block:
<script type="text/javascript">
var value = '<?=$your_permit_standard?>';
</script>
And then use it in your JS:
if ( $('#postage6').val() == "Your Permit Standard" ) {
$('#postage6rate').val(value);
}
But then you would be introducing JS dependency in PHP, which I wouldn't recommend, but since you're mixing both anyway...
回答2:
Looks like you’re setting an input value with JavaScript, after having set the .val()
method argument with PHP. Why not set the value of the input with PHP directly?
<input type="text" name="postage6rate" value="<?php echo $your_permit_standard; ?>">
If you need to run this script at some time other than page load, you could bind the data to an element with the data
attribute.
<input type="text" name="postage6rate" data-permit="<?php echo $your_permit_standard; ?>">
And then when you need to run your script…
window.addEventListener('onSomeEvent', function addTheData() {
var $input = $('input[name="postage6rate"]');
$input.val($input.data('permit'));
});
回答3:
I assume that your javascript
isn't in-line (in the same PHP
file) which prevents PHP
from executing
Try:
<?php
$your_permit_standard = "0.335";
?>
<html>
<body>
<input id="postage6" name="postage6" value="Your Permit Standard"/>
<input id="postage6rate" name="postage6rate"/>
<script src="http://code.jquery.com/jquery-2.0.3.min.js"></script>
<script>
if ( $('#postage6').val() == "Your Permit Standard" ) {
$('#postage6rate').val('<?php echo $your_permit_standard; ?>');
}
</script>
</body>
<html>
And here's the working example
来源:https://stackoverflow.com/questions/19912467/how-do-i-insert-php-variable-inside-jquery-javascript-properly