【问题标题】:Call PHP via AJAX通过 AJAX 调用 PHP
【发布时间】:2016-08-09 11:55:25
【问题描述】:

我的用户需要从第一个<select> 中选择一个选项,根据他的选择,第二个<select> 应该提供不同的选项。

您可能在许多网站上选择国家后选择州时看到了这一点。

我知道还有数百个类似的问题,但我尝试了很多他们的答案,但都没有成功。

所以,这就是我现在的位置:

            <div class="col-md-2">
              <span class="input-group-addon" id="basic-addon1" style="border:solid 1px #CCC; border-radius:4px;">Juzgado: </span>
              <select class="form-control" id="juz" name="juz">
                <option value="1">Juzgado 1</option>
                <option value="2">Juzgado 2</option>
                <option value="3">Juzgado 3</option>
              </select>
            </div>

            <div class="col-md-2" id="nomDiv">
                  <span class="input-group-addon" id="basic-addon1" style="border:solid 1px #CCC; border-radius:4px;">Nominación: </span>
                  <select class="form-control" id="nom" name="id_juz_nom">

                  </select>
            </div>

那么……我的 AJAX

<script type='text/javascript'>
        $(document).ready(function(){
            $('select[name=juz]').on('change', function() {

                var juz = $(this).val() 

                $.ajax({
                url: "tomarNominaciones.php",
                type: "POST",
                data: { juz.value },

                success: function (response) {

                        document.getElementById('nom').innerHTML= response;

                }
            });
          });
        });

</script>

最后这是我的 PHP:

    <?php 
$juz = $_POST['juz'];
include 'conectar.php';
mysql_select_db('juz_nom');
$query  = "SELECT * FROM juz_nom WHERE juzgado=\"".$juz."\"";
$result = mysql_query($query);
?>

<span class="input-group-addon" id="basic-addon1" style="border:solid 1px #CCC; border-radius:4px;">Nominación: </span>
<select class="form-control" id="nom" name="id_juz_nom">
<option>Seleccione Nominación</option>
<?php while ($row=mysql_fetch_array($result)) { ?>
<option value=<?php echo $row['id_juz_nom']?>><?php echo $row['nominacion']?></option>
<?php } ?>
</select>

我尝试了很多方法,例如this onethis other one。没有任何成功。

所以,明确地说,我需要做的是:用我的 MySQL 查询返回的尽可能多的选项填充我的第二个选择。

【问题讨论】:

  • 好的,那什么不起作用?
  • juz.value 将是未定义的,因为 juz 已经是一个字符串。 .val() 已经提取了值。
  • 不幸的是,这是不对的:恶意用户可以自己发送一个帖子请求,包含他们喜欢的任何值。
  • @GonHL 不,可以直接向您的 PHP 页面发出请求,或者用户可以修改 DOM 以发送其他内容。永远不要相信客户端输入。也可以使用@ 标记用户。
  • 停止使用已弃用且自 PHP7 起已移除 mysql_* 函数。迁移到 PDO 并开始使用 Prepared Statements。

标签: php html mysql ajax


【解决方案1】:

改变

data: { juz.value },

data: { juz },

并回显 HTML

作为:

    echo "<span class='input-group-addon' id='basic-addon1' style='border:solid 1px #CCC; border-radius:4px;'>Nominación: </span>
    <select class='form-control' id='nom' name='id_juz_nom'>
    <option>Seleccione Nominación</option>";
 while ($row=mysql_fetch_array($result)) {
    echo "<option value=$row['id_juz_nom']>$row['nominacion']</option>
    </select>";}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-03
    • 2012-09-30
    • 1970-01-01
    • 2013-05-14
    相关资源
    最近更新 更多