0

我尽力不发布这个问题,但我就是想不通这个问题。我正在尝试将我的 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

4 回答 4

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;
}
?>

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

这里我给你一个下载代码的链接

于 2012-05-31T05:04:39.243 回答
0

将标签放在 HTML 表单元素中。我也不明白你为什么要合并 javascript 和 PHP mysql 更新功能。你可以编写像 1.Form Element 这样的代码

完毕。

于 2012-05-31T04:32:34.373 回答
0

您需要提交表格。您可以使用 post 或 get 作为方法。但如果不提交,您不能将变量从 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>";

?>

在目标页面上写在页面顶部

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

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

于 2012-05-31T04:33:31.243 回答
-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();


     ?>
}

尝试包含在脚本标签中。

于 2012-05-31T04:34:29.600 回答