1

テーブルを表示するページがあり、各テーブル行にフォームを埋め込み、ドロップダウン メニューからデータを送信します。AJAXを使用してページを作成しています。以下は、phpページでエコーしているものです。

echo "<table id=\"comp\">";
echo "<tr> 
<th> CID </th>
<th> USERNAME </th>
<th> NAME </th>
<th> DESCRIPTION </th>
<th> ADDRESS </th>
<th> PHONE </th>
<th> DATE </th>
<th>Choose JE</th>
<th></th>
</tr>";
for($i=0;$i<$count;$i++)
{
   $c = mysql_result($result, $i, 'cid');
echo "<form name=\"$i\" action=\"je_select.php\" method=\"post\">
<tr id=\"$i\">";
echo "<td>".$c."</td>";
echo "<td>".mysql_result($result, $i, 'uname')."</td>";
echo "<td>".mysql_result($result, $i, 'name')."</td>";
echo "<td>".mysql_result($result, $i, 'desc')."</td>";
echo "<td>".mysql_result($result, $i, 'address')."</td>";
echo "<td>".mysql_result($result, $i, 'phone')."</td>";
echo "<td>".mysql_result($result, $i, 'date')."</td>";

echo "<td>$dropdown</td>";
echo "<td><input type=\"hidden\" name=\"cid\" value=\"$c\"/><input type=\"submit\" value=\"Forward\"/></td>";
    echo "</tr></form>";
}       
echo "</table>";

問題は、フォームが正常に表示されることですが、[送信] ボタンをクリックしてもフォームが送信されないことです。それは単に何もしません。私のプロジェクトの別の同様のコードは問題なく動作しますが。

これで私を助けてください。立ち往生しており、このプロジェクトを早急に完了する必要があります。

編集

このソースコードを開いてみました。そして、私が見ているのは、フォームタグが開かれたのと同じ場所で閉じていることです:

<form name=\"$i\" action=\"je_select.php\" method=\"post\"></form>

なぜこうなった??。投稿も見ました:フォームの問題(テーブルの早い段階で閉じています)

「tr」タグの前にフォームタグを開きましたが、まだ機能していません。

もっと

もう 1 つ気づいたことは、AJAX ページのソース コードには、説明のつかない理由でテーブルにも tbody タグがあるということです。tbody タグは私の古いプロジェクトの 1 つにも存在しますが、同様のことがそこで機能します。私を助けてください。

AJAX の機能

クリックするリンク:

    <div id="choices">
        <ul id="clist">
            <a href="#" onclick="ajax(1);"><li>Pending Complaints</li></a>
            <a href="#" onclick="ajax(2);" ><li>Handled Complaints</li></a>
            <a href="logout.php" ><li>Logout</li></a>
            <div class="clear"></div>
        </ul>
    </div>

関数 ajax:

        function ajax(val) {
        var xmlhttp;
        if (active != val) {
        active = val;
        if (window.XMLHttpRequest)
        {
            xmlhttp=new XMLHttpRequest();
        }
        else
        { 
            xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
        }

        if (xhr) {
            xhr.abort();
        }
        xhr = xmlhttp;
        xmlhttp.onreadystatechange=function()
        {
        if (xmlhttp.readyState==4 && xmlhttp.status==200)
        {

            document.getElementById("content").innerHTML=xmlhttp.responseText;
            document.getElementById("banner").innerHTML=arr[val - 1];
        }
        }
            xmlhttp.open("GET","dispcae.php?&s="+val , true);
        xmlhttp.send(); 
    }
}
4

2 に答える 2

1

Ajax 応答は有効な HTMLではありません。フォームを table/tr/td/th 内にラップすることはできません。

HTML を再構築してみて、Form を使用してテーブルをラップします。

こちらの同様の Q&Aをご覧ください

于 2013-08-29T08:54:31.737 に答える
0

データベースからのデータには引用符 (Single または double) が含まれているため、ブラウザーでのレンダリングが中断され、実際には内部になくても閉じられます。フォーム内に送信ボタンがないため、何もしません。

引用符なしでデータベースにダミーデータを入れてチェックする

于 2013-08-29T07:56:57.710 に答える