【问题标题】:Combobox onchange event to select database values用于选择数据库值的组合框 onchange 事件
【发布时间】:2013-05-23 15:18:09
【问题描述】:

我有以下代码

<form class="form-horizontal" method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>" >
  <br /><div class="controls"><h1><?php echo $full_name; ?></h1></div><br />
  <?php echo printErrorMessage($errors); ?>
  <fieldset><legend>Add Subject for <u>"<?php echo $full_name; ?>"</u></legend></fieldset>

  <!-- select all courses -->
  <div class="control-group">
    <label class="control-label">Subject</label>
    <div class="controls inline">
      <select id="courses" class="input-xlarge" name="courses"  onchange="getSubj()">
        <option value="0">Courses</option>

          <?php
            $pstmt = Course::findAll();
            while($row = $pstmt->fetch(PDO::FETCH_ASSOC)){        
              echo '<option value="' . $row['id'] . '" >';
              echo $row['title'] . '</option>';
            }
          ?>


          <?php //echo displayCombo2(Course::findAll()); ?>
      </select>
    </div>
  </div>

<?php echo $couid; ?>

  <!-- select all subject -->
  <div class="control-group">
    <label class="control-label">Subject</label>
    <div class="controls inline">
      <input name="emp_id" value="<?php echo $employee_id; ?>" type="hidden" /> 
      <select class="input-xlarge" name="subject">
        <option value="0" onchange="">Subject</option>


          <?php
            $pstmt = Subject::findAll();
            while($row = $pstmt->fetch(PDO::FETCH_ASSOC)){        
              echo '<option value="' . $row['id'] . '" >';
              echo $row['title'] . '</option>';
            }
          ?>



          <?php //echo displayCombo2(Subject::findAll()); ?>
      </select>
    </div>
  </div>


  <div class="control-group">
    <label class="control-label">Description</label>
    <div class="controls">
      <input name="desc" class="input-xlarge" type="text" placeholder="Description">
    </div>
  </div>

  <div class="control-group">
    <div class="controls">
      <button type="submit" class="btn btn-primary" name="submit">Save Course</button>
    </div>
  </div>
</form>

用户将首先从包含所有课程的组合框中选择两个项目。一旦用户选择了我想返回数据库的课程并只选择那些与所选课程相关联的科目。我可以通过 SQL 做到这一点,但我不知道如何在这里做到。

我必须提交回服务器来处理 PHP 吗?我的意思是,用form 标签包围select 选项卡,这样它就可以提交给自己并取回与该主题相关联的新值。问题是这已经在表单中了。

我怎样才能做到这一点?

下面是我尝试获取数据的 jquery 代码,但很难解释,因为该页面处理该特定页面上的内容并仅返回例如回显

<script type="text/javascript">
  function getSubj(){
    var courseID = $('#courses').val();
    $.post('getSubjects.php', {postCourseID:courseID}, 
          function(data){
            if(data>="1"){
              $('#res').html(data);
            }
          });

    //alert("working wit ooooooo " + courseID);
  }
</script>

问题是如何在 PHP 中存储存储在“数据”(函数(数据))中的值,以便我可以执行东西

谢谢

【问题讨论】:

    标签: php javascript html ajax database


    【解决方案1】:

    你的怀疑是正确的。为了完成您想要的,您必须创建一个单独的表单并将其提交给 PHP 脚本。这是像 PHP 这样的服务器端语言的特征之一。数据提交必须由用户发起,页面必须完全重新加载。

    这可以看作是对您设计的限制,这就是为什么许多网站使用 JavaScript 等客户端脚本来补充其服务器端脚本的原因。 (jQuery 是一个流行的 JavaScript 框架,它使 JavaScript 的使用变得更容易)您可以通过一种称为 AJAX 的方法来做到这一点。

    AJAX 基本上是不同 Web 技术的组合,它允许客户端通过单击按钮或从选择元素中选择特定值等操作来发起对服务器端脚本的调用。此调用是在后台进行的,因此用户甚至不必知道它正在进行。然后页面可以使用返回的服务器端数据通过 JavaScript 实时更新。

    我更喜欢使用 jQuery 库提供的 .ajax() 函数。这是一个非常干净和无痛的实现。阅读上面链接中的文档,了解有关实施的更多具体信息。

    【讨论】:

    • 如您所见,我已经用 jquery 的问题更新了我的帖子,即 jquery 在指定页面上处理内容,但只返回一个回显语句,不介意返回回显,但我如何将该值存储到本地 php变量?
    • 由于您使用$.post() 函数,您的“postCourseID”值将通过$_POST 数组发送到PHP 文件。因此只需像这样存储它:$postCourseId = $_POST['postCourseId'];
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-06
    • 2012-05-27
    • 1970-01-01
    相关资源
    最近更新 更多