私は検索し、編集し、再編集し、JSLintに見下され、再テストしました。私が知っていることの実際的な限界に達しました。また、問題をより具体的に切り分けるための Firebug やその他のツールの経験がありません。少年を正しい方向に向けます。
問題のあるコードは次のとおりです。
echo '<script type="text/javascript">' . "\n";
echo '$(document).ready(function() {' . "\n";
echo '$("#' . $row['firstname'] . $row['lastname'] . '").click(function() {' . "\n";
echo ' $.post("http://example.com/publish.php", { fname: "' . $row['firstname'] . '", lname: "' . $row['lastname'] . '", input: "' . $published['input'] . '", table: "' . $q . '" });' . "\n";
echo 'e.preventDefault();' . "\n";
echo 'return false;' . "\n";
echo ' });' . "\n";
echo '});' . "\n";
echo '</script>';
これは、アウトリーチ スキームの一部として html テンプレートを割り当てられた個人の詳細を示す mysql DB からデータを取得する、より大きな while ループの一部です。とりわけ、ループは、コンテンツが Web に公開されているかどうか、またはコンテンツがクエリの一部として残っているだけで、準備ができているかどうかをユーザーに知らせます。未公開の場合は 0、公開済みの場合は 1。上記のスクリプトは、publish.php に UPDATE クエリを実行し、0 を 1 に、またはその逆に変更するように指示することが期待されています。スクリプトを手動でクエリすると、コンテンツが公開され、期待どおりの結果が得られます。
ブラウザ側では、PHP を使用してテーブル内の DB 情報を出力しました。最後の列には、公開または非公開のボタンがあります。
echo "<td><button id='" . $row['firstname'] . $row['lastname'] . "' class='btn btn-small " . $published['UI'] . "'>" . $published['do'] . "</button></td>";
上記のコードは正常に動作するようです。姓と名の融合に基づいて一意の #id を生成し、ボタンにアタッチする適切なクラス (非公開の場合は赤、公開の場合は緑) をエコーし、ユーザーが選択した場合に実行するアクションをユーザーに警告します。ボタンを押す。
さて、それはすべて次のものと一緒になるはずです。これは、問題のあるコードであると思われる出力です (最初に投稿したスニペット)。私には甘く見えますが、誰が知っていますか。やっぱり私は素人です。
$(document).ready(function() {
$("#FirstnameLastname").click(function() {
$.post("http://example.com/publish.php", { fname: "Firstname", lname: "Lastname", input: "1", table: "Tablename" });
e.preventDefault();
return false;
});
});
私が書く場合:
$.post("http://example.com/publish.php", { fname: "Firstname", lname: "Lastname", input: "1", table: "Tablename" });
コンソールに直接入力して、Tablename のユーザー Firstname Lastname の公開ステータスを 0 から 1 に変更します。ボタンをクリックすると、アドレス バーに無意味な文字列が表示されます。
http://example.com/outreach.php?names=Tablename&names=None
これで何が起きているのですか?
ここまで読んでくれてありがとう。これを理解するのを楽しみにしています!ハハ。
その他の注意事項:
PHP 5.3.x
Jquery is called in the head.
All table names contain a number of dashes - could this be causing the string to turn into rubbish? e.g outreach.php?names=Ta-bl-ena-me&names=None
以下は、outreach.php がテーブル名のリストを要求する方法です。変更すると、これは Ajax として getnames.php に送信され、そこから html/js が outreach.php に (問題ありません) 前述の表の形式で送信されます。これが、私が今、設計図に戻る必要があるかもしれないと考えている理由です...
<?php while($showtablerow = mysql_fetch_array($showtablequery_result)) { echo "<option>" . $showtablerow[0]."<br />" . "</option>"; } ?>