使用AJAX将javascript变量传递给PHP无法正常工作

时间:2017-08-10 13:11:11

标签: javascript php jquery ajax

我试图将一个js变量(当用户在select下拉菜单中选择一个随机选项时得到的值)传递给php变量,这样我就可以检查数据库中所选选项的属性了。 Option是AD的名称,value实际上是数据库中的ID。 当用户选择方法getSelected()被调用时。在这个方法中,我首先尝试使用AJAX将存储在js( value = e.options [e.selectedIndex] .value; )中的ID值传递给PHP变量。我写的文件实际上是" uredi.php"。所以我想知道我在这里做错了什么。我对任何建议持开放态度。 我用php创建一个选择框,工作正常。 问题是错误:

  

未定义的索引:第38行的C:\ xampp \ htdocs \ mod \ sub \ uredi.php中的建议

这是代码:

<body>
    <div class="generalBox">
        <form class="generalForm" action="" method="POST">
            <label class="headLabel">UREDI</label>
            <br>
            <br>
            <script>
            var value;
            var opis;
            var datumz;
            var datumk;
            var pr;
            var format;
                document.write(<?php echo json_encode(getCurrentAds()); ?>);

                function getSelected(){

                    var e = document.getElementById("ogSelect");
                    value = e.options[e.selectedIndex].value;
                    console.log(value);

                    $.post("uredi.php", {
                        suggestion: value
                    }, function(data, status){
                        $("#test").html(data);
                    });

                    <?php $id = $_POST['suggestion']; ?>
                    }
                }
            </script>
            <br>
            <br>
            <input class="inputTextSub" id="opisE" name="opisE" type="text">
            <br>
            <br>
            <input class="inputTextSub" id="datumzE" name="datumzE" type="date">
            <br>
            <br>
            <input class="inputTextSub" id="datumkE" name="datumkE" type="date">
            <br>
            <br>
            <label class="inputTextSub">prioriteta</label>
            <select class="inputSelSub" id="prE">
                <option value=1>1</option>
                <option value=2>2</option></select>
            <br>
            <br>
            <label class="inputTextSub">format</label>
            <select class="inputSelSub" id="formatE">
                <option value=1>A3</option>
                <option value=2>A4</option></select>
            <br>
            <br>
            <input type="file" name="fileE" id="fileE" class="inputfile" />
            <br>
            <br>
            <p id="test" class="inputTextSub"></label>
            <input class="button" style="margin-top:2em;" name="saveE" type="submit" value=" shrani ">
        </from>
    </div>
</body>
如果你想知道的话,

这里是getCurrentAds()

function getCurrentAds(){
$dropDown='';
$query = 'SELECT `oglas_id`,`naziv` FROM `deska` WHERE `mod_id`='.$_SESSION['mod_id'].';';
$result = mysqli_query($GLOBALS['conn'],$query);
$rows = mysqli_num_rows($result);
if($rows > 0){
    $dropDown = '<select onclick="getSelected()" class="inputSelAds" id="ogSelect" name="ogSelect">';
    while($row = mysqli_fetch_assoc($result)){
            $dropDown = $dropDown.'<option value="'.$row['oglas_id'].'">'.$row['naziv'].'</option>';
    }
    $dropDown = $dropDown.'</select>';
}else{
    $dropDown = '<select><option value=""></option></select>';
}
return $dropDown;}

1 个答案:

答案 0 :(得分:0)

我对你的专栏<?php $id = $_POST['suggestion']; ?>感到困惑。 这应该放入$id POST变量suggestion,这里没有定义(你可以用if(isset($_POST['suggestion'])){ /* ... */ }来检查)。但是没有输入name="suggestion"所以即使提交表单后,您也会收到未定义的索引错误。您希望在$id中获得什么输入值?