首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用从jquery到php的传递变量动态更新字段

使用从jquery到php的传递变量动态更新字段
EN

Stack Overflow用户
提问于 2014-02-25 16:32:16
回答 2查看 1.4K关注 0票数 0

我在下拉列表中有一堆储物柜号(从MYSQL/PHP中填充)。我想显示储物柜的组合和位置,当您从列表中选择一个储物柜号时,在同一页下面的两个输入字段中。

我使用jquery来告诉我列表中的哪一项是动态选择的。然后我使用$.ajax()函数将该项发送到我的服务器。

我的问题是:我可以使用$.ajax()将我的变量发送到我所在的页面吗?我试过了,结果出错了。我不知道如何做到这一点。我对AJAX的了解非常少。

我的代码如下:

代码语言:javascript
运行
复制
    <!doctype html>
    <html>
    <head>
    <meta charset="utf-8">
    <title>Locker Backend</title>
    <link rel="stylesheet" type="text/css" href="style.css">
    <link rel="stylesheet" type="text/css" href="form.css">
    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
    <script type="text/javascript">
function show()
{
   $('#addlocker').toggle();
}
    function lockerSelected(sel)
       {
    var selected = (sel.options[sel.selectedIndex].text);
        $.ajax({
        type:"POST",
        url: "studentdata.php",
        data: selected,
        success: function(){
            alert(selected);
        }
       });
       }
    </script>
    <!--[if lt IE 9]>
    <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
    <![endif]-->
    </head>

    <body>
    <?php
        $url = $_SERVER['REQUEST_URI'];
        $studID = substr($url, strpos($url, "=") + 1);

    $db_handle = mysql_connect("localhost", "root", "pickles") or die("Error connecting to database: ".mysql_error());


        mysql_select_db("lockers",$db_handle) or die(mysql_error());

    $result = mysql_query("SELECT * FROM students WHERE studID = $studID"); 
        ?>
    <div class="container">
      <header> <a href="#"><img src="images/headmast.png" alt="Insert Logo Here" width="686" height="180" id="Insert_logo" /></a> </header>
      <div id="data1">
      <form id ="studData" name="studData" action="update.php" medthod="post">
        <fieldset>
          <legend>Student Details</legend>
          <?php
      while($row = mysql_fetch_array($result)) 
      { 
      echo '<ol>';
       echo '<li>';
      echo '<label for=studid>Student ID</label>';
      echo '<input id=studid name=studid type=text value='.$row['studID'].'>';
      echo '</il>';
      echo '<li>';
      echo '<label for=fname>First Name</label>';
      echo '<input id=fname name=fname type=text value='.$row['firstName'].'>';
      echo '</il>';
      echo '<li>';
      echo '<label for=fname>Last Name</label>';
      echo '<input id=lname name=lname type=text value='.$row['lastName'].'>';
      echo '</il>';
      echo '<li>';
      echo '<label for=email>Email</label>';
      echo '<input id=email name=email type=text value='.$row['email'].'>';
      echo '</il>';
      echo '<li>';
      echo '<label for=progam>Program</label>';
      echo '<input id=progam name=progam type=text value='.$row['program'].'>';
      echo '</il>';
      echo '</ol>';
      $program = $row['program'];  //get name of program 
      } 
      ?>
          <input type="submit" value="Update" class="fButton"/>
        </fieldset>
      </form>

      <form id="locker" name="locker" action="" method="post" >
        <fieldset>
          <input type="button" onclick="show()" value="Add Locker"/>
          <div id="addlocker" style="display:none;"> 
          <!--
          query lockers where $program = program parsed in & student id is equal to 0 (this makes it available)
          get select list to 10
          populate select list    -->  <br/>
          <legend>Lockers Available: </legend>
          <select size="10" name="lockerSelect" multiple="yes" style="width:200px;" onChange="lockerSelected(this);">
          <?php
          $result1=mysql_query("SELECT * FROM lockers WHERE progName = '$program' && studID = 0") or die($result1."<br/><br/>".mysql_error());
          while($row1 = mysql_fetch_array($result1)) 
      {
         echo '<option value=\"'.$row1['lockerScan'].'">'.$row1['lockerNo'].'</option>';
      }
      echo '</select>';
        echo '<br>';

        $lockerNo = $_POST['selected'];  \\doesn't work - displays error
        echo $lockerNo; \\errors out
          ?>
          </div><!--end of add locker section-->
        </fieldset>
      </form>
      </div><!--end of data1 -->
    <a href="backendhome.php" class="actionButton" style="float:left;clear:both">Search</a>  


    </div><!-- end of container-->
    </body>
    </html>
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-02-25 16:42:30

首先,您可以使用:

代码语言:javascript
运行
复制
function show()
{
   $('#addlocker').toggle();
}

然后,您应该了解更多关于Ajax和PHP的知识。你的电话应该是:

代码语言:javascript
运行
复制
var selected = (sel.options[sel.selectedIndex].text);

$.ajax({
   type:"POST",
   url: "studentdata.php",
   data: {selected: selected},
   success: function(data){
      alert(data);
   }
});

在PHP文件中:

代码语言:javascript
运行
复制
<?php 
$select = $_POST['selected'];

//....
// Do what you have to do then return your result    

echo '<div>Send to your page !</div>';
票数 0
EN

Stack Overflow用户

发布于 2014-02-25 16:52:50

先整理你的档案。jsjs文件夹中phpphp文件夹中

最好的方法是访问一个单独的php页面,然后在js中使用更改事件。

代码语言:javascript
运行
复制
$(document).on("change", "#selectfieldid", function(){
  var selected = $('#selectfieldid').val();
   $.ajax({
    type:"POST",
    url: "studentdata.php",
    data: selected,
    success: function(data){
        $('#addlocker').val(data); //echoed result placed here that has id addlocker

    }
   });
});

将这些内容发送到php页面,在该php中回显结果。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22020341

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档