将php值传递给html元素而不使用echo

时间:2015-07-08 12:24:26

标签: php html

我正在使用php $ _GET []获取一个值,并且我希望将其作为简单html输入元素的值传递。我知道我可以这样做:

<?
     $value     = $_GET['value'];
     echo '<input type="text" name="value" value="'.$value.'" />';
?>

但有没有办法将php与html分开,将值赋予文本框而不回显它?

我想将文本框创建为常规html元素,并且只在我设置其值的部分中使用php。

Iaroel的答案对我的目的来说更实用,但我喜欢接受的答案涉及许多问题的方式 - 我认为这对其他用户更有价值。

7 个答案:

答案 0 :(得分:0)

如果您不希望在HTML中回显任何内容,请使用Ajax调用来获取值。

$.ajax({
    url: 'getValues.php',
    type: 'post',
    dataType: 'json',
    success: function (json) {
        if (json) {
            $.each(json, function (k, v) {
                $(k).val(v);
            });
        }
    }
});

[PHP]

echo json_encode(array('#first_input_id' => 'val1', '#second_input_id' => 'val2', '.some_classes' => 'val5'));

或者,如果值是静态的,则可以使用本地json文件。

答案 1 :(得分:0)

$_GET['value']未定义时,您不希望出现错误。

<?php
$value = isset($_GET['value'] ? $_GET['value'] : '');
?>
<input type="text" name="value" value="<?php echo $value; ?>">

谨慎,可以插入$_GET['value']中的恶意数据,以便您必须对$value

应用适当的卫生设施

关于&#34; 获取$ _GET [&#39;价值&#39;]没有PHP &#34;

你可以通过创建一个小的javascript函数来获得它而不需要PHP脚本:

<script type="text/javascript">
    function $_GET(q,s) { 
        s = s ? s : window.location.search; 
        var re = new RegExp('&'+q+'(?:=([^&]*))?(?=&|$)','i'); 
        return (s=s.replace(/^?/,'&').match(re)) ? (typeof s[1] == 'undefined' ? '' : decodeURIComponent(s[1])) : undefined; 
    } 
</script>

那个正则表达到底是什么?这只是匹配网址模式的问题。

现在,您可以使用此$_GET()方法将值分配给该文本框。在这个例子中,我使用了jQuery:

<script type="text/javascript">
    $(document).ready(function() {
        $('input[name="value"]').attr('value', $_GET('value'));
    });
</script>

现在您的HTML代码将如此简单:

<input type="text" name="value">

参考:http://www.onlineaspect.com/2009/06/10/reading-get-variables-with-javascript/

答案 2 :(得分:0)

你的意思是这样吗?

<?php
   $value = $_GET['value'];
?>

<input type="text" name="value" value="<?php echo $value;?>" />

或者这个(不建议):

  <?php
       $value = $_GET['value'];
   ?>
   <input type="text" name="value" value="<?= $someVar ?>" />

但我建议查看模板引擎,例如http://www.smarty.net/

答案 3 :(得分:0)

如果你的php配置允许使用短标签,你可以这样做:

Subject::accept

答案 4 :(得分:0)

你可以尝试没有回声

<?php  $value     = $_GET['value'];?>
<input type = "text" name = "value" value="<?= $value; ?>" />

答案 5 :(得分:0)

如果它对你的项目非常重要,理想情况下你想要将你的PHP代码与你的html标签分开。这可以通过使用一些模板引擎来实现。

有一些众所周知的选项可供选择,最好是检查并查看哪一个最适合您的用例。

答案 6 :(得分:0)

您可以使用PHP Heardoc选项。在这里找到链接。

http://www.hackingwithphp.com/2/6/3/heredoc