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コードに値を渡す方法について、どんな助けでも大歓迎です。

編集

混乱について申し訳ありませんが、基本的にドロップダウンメニューがあり、ドロップダウンメニューが変更されたときに、ドロップダウンにあるものをクエリのテーブルとして使用してデータベースにクエリを実行したいデータベースから取得した値は、フォームのテキスト フィールドに設定されます。それはすべて1ページにあり、ドロップダウンが変更されたときにテキストフィールドを更新しようとしています

4

4 に答える 4

2

あなたが updateInfo スクリプトを書いた方法は不可能です。PHP 連結 (すなわち ".") を使用すると、java-script ではなく、php 変数のみを連結できます。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 Form 要素内に配置します。また、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();


     ?>
}

script タグで囲んでみてください。

于 2012-05-31T04:34:29.600 に答える