将变量从表单传递给php

时间:2012-05-31 04:27:36

标签: php javascript html forms

尽我所能不发布这个问题,但我无法想出这个问题。我正在尝试将一个变量从我的html表单传递到一个php脚本,代码到目前为止是这样的

<?PHP
echo "<b>Previously Submitted</b><br />";
echo "<select name='files' onChange='updateInfo();'>";
echo "<option value=''></option>";
$files = scandir("businesses");
foreach ($files as $file)
    if($file != "."){
      if($file != ".."){
        if($file != "form.php"){
          echo "<option value='$file'>". htmlspecialchars($file) ."</option>";
        }
      }
    }
echo "</select>";
?>

<script type="text/javascript">
function updateInfo(){
  <?PHP
    mysql_connect("HOSTHERE","USERNAME","PASSWORD");
    mysql_select_db("USERNAME");
    //This is the line that is of interest i can't figure how to pass document.forms['frm'].files.value to my query
    $bizname = mysql_query("SELECT `Value` FROM `" . document.forms['frm'].files.value . "` WHERE `Variable` LIKE 'Name'");
    $bizValue = mysql_fetch_assoc($bizname);
    echo "document.forms['frm'].businessname.value = '" . $bizValue['Value'] . "';";
    mysql_close();
  ?>
}
</script>

如何将我的下拉值传递给php代码,我们将非常感谢任何帮助。

修改

只是为了清楚我正在做什么抱歉一些混乱基本上我有一个下拉菜单,当下拉菜单被更改时,我想使用下拉列表中的任何内容查询我的数据库作为查询中的表格那么我从数据库获得的价值是在文本字段中的表单中设置的。这一切都在一个页面中,只是在更改下拉列表时尝试更新文本

4 个答案:

答案 0 :(得分:2)

您无法编写updateInfo脚本的方式。使用php连接(即“。”)你可以只连接php变量而不是java-script。 PHP不理解它。

我建议你使用ajax。在您的updateInfo中传递更改的值。

<?php
echo "<select name='files' onChange='updateInfo(this.value);'>";
echo "<option value=''></option>";
$files = scandir("business");
foreach ($files as $file)
    if($file != "."){
      if($file != ".."){
        if($file != "form.php"){
          echo "<option value='$file'>". htmlspecialchars($file) ."</option>";
        }
      }
    }
echo "</select>";
?>

然后发送ajax并获得响应。并根据需要处理响应

<script type="text/javascript">
function updateInfo(val){
$.ajax({
   url: '/path/to/ajaxrequest.php',
   type: 'post',
   data: {'file':val}
   success: function(response){
      document.forms['frm'].businessname.value = response;
   }
});
</script>

和你的ajaxrequest.php

<?php
if(!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH'])=='xmlhttprequest'){

mysql_connect("HOSTHERE","USERNAME","PASSWORD");
mysql_select_db("USERNAME");

$file = mysql_real_escape_string($_POST['file']);

$bizname = mysql_query("SELECT `Value` FROM ".$file." WHERE `Variable` LIKE 'Name'");
$bizValue = mysql_fetch_assoc($bizname);
$assignVal = $bizValue['Value']; 
mysql_close();

echo $assignVal;
}
?>

如果你不明白,请告诉我。谢谢。

我在这里给你一个download code

的链接

答案 1 :(得分:0)

将标签放在HTML Form元素中。另外我还没理解为什么要合并javascript和PHP mysql更新功能。 你可以写代码 1.Form元素

完成。

答案 2 :(得分:0)

您需要提交表单。你可以使用post或get as method。但是如果没有提交,你就无法将变量从html传递给php。

<?PHP
echo "<form name='frm_1' id='frm_1' action='your_destination_page.php' method='post>'";
echo "<b>Previously Submitted</b><br />";
echo "<select name='files' onChange='updateInfo();'>";
echo "<option value=''></option>";
$files = scandir("businesses");
foreach ($files as $file)
    if($file != "."){
      if($file != ".."){
        if($file != "form.php"){
          echo "<option value='$file'>". htmlspecialchars($file) ."</option>";
        }
      }
    }
echo "</select></form>";

&GT;

目的地页面上的

将此内容写在页面顶部

<?php echo "<pre>";print_r($_POST);echo "</pre>";?>

你将拥有$ _POST数组中所有控件的值。

答案 3 :(得分:-2)

<?PHP
echo "<b>Previously Submitted</b><br />";
echo "<select name='files' onChange='updateInfo();'>";
echo "<option value=''></option>";
$files = scandir("businesses");
foreach ($files as $file)
    if($file != "."){
      if($file != ".."){
        if($file != "form.php"){
          echo "<option value='$file'>". htmlspecialchars($file) ."</option>";
        }
      }
    }
echo "</select>";
?>

<script type="text/javascript">
function updateInfo(){
  <?PHP
    mysql_connect("HOSTHERE","USERNAME","PASSWORD");
    mysql_select_db("USERNAME");
    //This is the line that is of interest i can't figure how to pass document.forms['frm'].files.value to my query
    $bizname = mysql_query("SELECT `Value` FROM `" . document.forms['frm'].files.value . "` WHERE `Variable` LIKE 'Name'");
    $bizValue = mysql_fetch_assoc($bizname);
    $assignVal = $bizValue['Value'];
    echo "<script>document.forms['frm'].businessname.value = '" .$assignVal . "';</script>";
    mysql_close();


     ?>
}

尝试将其封闭在脚本标记中。