簡體   English   中英

使用PHP回顯Jquery以執行.post(); 在.click();上 導致無法解釋的查詢

[英]Using PHP to echo out Jquery to perform .post(); on .click(); results in a query that I cannot explain

我進行了搜索,編輯,重新編輯,並被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>';

這是一個較大的while循環的一部分,該循環從mysql DB中獲取數據,詳細描述了已作為擴展方案一部分分配給html模板的個人。 除其他外,該循環使用戶可以知道內容是否已發布到Web上,或者只是作為查詢的一部分而准備就緒。 0為未發布,1為已發布。 預期以上腳本會告訴publish.php執行UPDATE查詢,並將0更改為1,反之亦然。 看起來很簡單,如果我手動查詢腳本,我的內容就會發布-我會得到預期的結果。

現在在瀏覽器端,我已經使用PHP在表內輸出數據庫信息。 在最后一列中,有一個按鈕可以發布或取消發布。

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" });

直接在控制台中,將表名中用戶名姓的發布狀態從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>";  } ?>

好的,到目前為止,我已經對代碼進行了一些整理以提高可讀性。 我認為發布參數出了點問題。 它們也以網址結尾嗎?

<script type="text/javascript">
    $(document).ready(function() {
        $("#<?php echo $r['firstname'] . $r['lastname']; ?>").click(function(e) {
        $.post("http://thinknextmedia.com/publish.php", 
            { fname: "<?php echo $r['firstname']; ?>", 
              lname: "<?php echo $r['lastname']; ?>", 
              input: "<?php echo $published['input'] ?>", 
              table: "<?php echo $q ?>" });
        return false;
        });
    });
</script>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM