2

私は比較的初心者で、AJAXコーディングの問題を解決できなかったので、専門家の助けを借りてこれを提出すると思いました。

現在の設定:(フォームからAJAXスクリプトに送信された日付値)

選択した値(日付)は、メインページのドロップダウンフォームからonchangeイベントを介して送信されます。このイベントは、同じページでAjaxスクリプトを呼び出し、その値を別のPHPファイル(getuser.php)に渡します。Getuser.phpは、この日付値を取得して、テーブルに表示しているMySQLデータベースから情報を返します。その後、getuser.phpのテーブルは、JavaScriptの「グライダー」の一部としてdivタグ(tab1)でメインページに表示されます。これは現在の形では問題なく機能しますが、私が最終的に達成しようとしていることではありません。

必要なセットアップ:(フォームからではなく、メインページのロード時に事前定義されたPHP変数からAjaxスクリプトに渡される日付値)

メインページをロードするときに、目的の日付値がすでにPHP変数($ mydate)に割り当てられているため、日付を個別にフォームで選択したり、この選択したフォームの日付を渡したりする必要はありません。実行する必要があるのは、ページの読み込み時にPHP変数$ mydateをAJAXスクリプトに自動的に渡すことです。これにより、この値がURLに組み込まれ、(メインページの読み込み時に)getuser.phpに自動的に送信されます。ユーザー定義のフォーム選択。

これはメインページの現在のAJAXスクリプトです(フォーム送信メソッドを介して正常に機能します):

<script type="text/JavaScript">
function showUser(str)
{
if (str=="")
  {
  document.getElementById("tab1").innerHTML="";
  return;
  }
if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xmlhttp.onreadystatechange=function()
  {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
    document.getElementById("tab1").innerHTML=xmlhttp.responseText;
    }
  }
xmlhttp.open("GET","getuser.php?q="+str,true);
xmlhttp.send();
}
</script>

これは、現在日付を選択してAJAXスクリプトに渡すメインページの現在のフォームです。

<form>

<SELECT NAME="" onchange="showUser(this.value)">

<option value="">Select a date:</option>

<option value="2012-09-26">2012-09-26</option>

<option value="2012-09-25">2012-09-25</option>

<option value="2012-09-07">2012-09-07</option>

<option value="2012-09-08">2012-09-08</option>

<option value="2012-08-01">2012-08-01</option>

<option value="2012-08-04">2012-08-04</option>

</SELECT>

</form>

..ただし、現在の日付はphp変数$ mydateのメインページの読み込み時にすでに設定されているため、フォームは必要ありません。

セカンダリページgetuser.phpは、渡されたURLの値($ q = $ _ GET ["q"];)を取得し、それを使用してMySQLデータベースの情報をテーブルに表示します。このテーブルは、別のJavaScript「グライダー」の形式でdivタグ(タブ1)でメインページに表示されます。

<div id="glider"><div class="controls">
<a href="#tab1">Tab 1</a> | 
<a href="#tab2">Tab 2</a> |
<a href="#tab3">Tab 3</a> |
<a href="#tab4">Tab 4</a></div>
<div class="scroller"><div class="content">
<div class="section" id="tab1">Tab 1</div>
<div class="section" id="tab2">Tab 2</div>
<div class="section" id="tab3"><img src=" "  
/></div>
<div class="section" id="tab4">Tab 4</div>
</div></div></div>

<script type="text/JavaScript" charset="utf-8">
        new Glider('glider');
</script>

フォームをバイパスして$mydateをAJAXスクリプトに直接取得し、上記のように自動的に機能させるために、AJAXスクリプトコードの複数のバリエーションを試しましたが、何も機能しません。これにはおそらく簡単な答えがあり、それは単に構文的なものかもしれません。

4

1 に答える 1

1

PHPファイルでこのようなことを試してみませんか

<script type="text/JavaScript">
showuser("<?php echo $mydate ?>");
</script>
于 2012-11-02T03:59:30.980 に答える