javascript变量不读取php变量

时间:2015-11-15 23:38:13

标签: javascript php variables

在下面的脚本中,javascript变量(日期)不显示php变量(字段)的值。 Php变量是我需要传递给另一个页面的信息。

如果我不使用if (isset($_POST['submit']))并设置$field="something";那么它就可以了。我做错了什么?

感谢您的帮助

<HTML>
<BODY>

<?php 
if (isset($_POST['submit'])) {$field = $_POST['field'];}
?>

<FORM name="filter" METHOD ="POST" ACTION ="">

<select name="filteroptions" onChange="chgAction()">

<option value="" selected="selected">select an option</option>

<option value="Date Range" <?php if(isset($_POST['filteroptions']) && $_POST['filteroptions'] == 'Date Range') echo 'selected= "selected"'; ?>>Date Range</option>

</select> 

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

<INPUT TYPE = "submit" name="submit">

</form>


 <script>

function chgAction() {

var date = "<?php echo "/log/date.php?id=".$field; ?>";

        var form = document.filter;

    console.log('chgAction()');
    console.log(form.filteroptions.selectedIndex);

    switch (form.filteroptions.selectedIndex) {
        case 1:
            form.action = date;
            break;
           }

} 

</script>

</BODY>
</HTML>

2 个答案:

答案 0 :(得分:0)

$ _POST只会在提交数据后包含数据。 并且只有将数据发回到此页面时,您的代码才能正常工作。

因此,如果尚未向此页面提交数据的用户刚刚加载了此页面。然后它将无法正常工作。 $ field将不存在,因为没有post数组值&#34; submit&#34;。

如果用户在此页面或其他页面上,则会将数据发布到此页面&amp;在该帖子数据中包含以下字段:&#39;提交&#39; &安培; &#39;字段&#39;那它就会起作用。

答案 1 :(得分:0)

与此PHP Fiddle一样,如果已经设置并提交了字段,那么您将获得相应日期的日志,如果字段未定义则会报告

<?php 
    if(isset($_POST['submit'])){
        $field = $_POST['field'];
    }else{
        $field = '';
    }
?>
<form name="filter" method="POST" action="">
    <select name="filteroptions" onChange="chgAction()">
        <option value="" selected="selected">select an option</option>
        <option value="Date Range" <?php if(isset($_POST['filteroptions']) && $_POST['filteroptions'] == 'Date Range') echo 'selected= "selected"'; ?>>Date Range</option>
    </select>
    <input type="text" name="field">
    <input type = "submit" name="submit">
</form>
<script>
    function chgAction() {
        var field = "<?php echo $field; ?>";
        if(field != ''){
            var date = "/log/date.php?id=" + field;
            alert(date);
        }
        else{
            alert('Please select a date range');
        }
    }
</script>