2017-05-01 11 views
1

如果我試圖在textarea中發送Html數據代碼失敗。警報工作,直到用戶名數據正確,但Ajax不發送我的數據到Php服務器。如何使用ajax獲取文本區域數據(在文本區域中的Html文件)我需要發送數據到Php? Ajax不發送我的文本區域數據?


的Javascript

var username=document.getElementById("my_text").value; 

     if(username){ 

       $.ajax({ 
        type: 'post', 
        url: 'checkdata.php?username=username', 
        data: { 
        username:username, 
        }, 
        success: function (response){ 
         $('#name_status').html(response); 
         if(response=="OK"){ 
          return true;  

         } 
         else{ 
          return false; 
         } 
         } 
        }); 

的Html

 <textarea id="my_text" > 
         <html> 
         <head> 
          <title>Page Title</title> 
         </head> 
          <body> 
           <h1>My First Heading</h1> 
           <p>My first paragraph.</p> 
          </body> 
         </html> 
       </textarea> 
+0

console.log show username有一個值? – clearshot66

+0

先生,我將Html整個文件發送到Ajax。所有數據進入用戶名如果​​條件。之後,不工作 –

+0

我的問題是Ajax不工作,數據不發送到PHP服務器。在ajax失敗 –

回答

0

有一對夫婦的代碼可能被打破地方。如果您提供錯誤的控制檯日誌,這對我們來說更容易幫助。

1)如果你還沒有加載jQuery,那麼將不會調用$.ajax()。您可能還需要執行$(document).ready();以確保所有內容都已加載。

2)您在textarea中包裝了一個全新的DOM。我不確定這是否是複製/粘貼錯誤,但會對結果產生奇怪的影響。

3)你的迴應後顯然,你實際上是試圖發送HTML到服務器..?來自控制檯的錯誤代碼表明還有很多其他事情正在進行。如果我們沒有看到一切,很難知道如何提供幫助。即PHP和其餘客戶端代碼。

3)由於您的if語句未包含在函數調用中,因此會在運行時對其進行評估。所以代碼在頁面加載時運行,但以後不會觸發它。這意味着username始終爲空。

如果你想解決這個問題,你需要一些東西來觸發事件。你可以試試:

HTML

<body> 
<textarea id='my_text'></textarea> 
<button id="submitButton">Submit</button> 
</body> 

JS

let sub = document.getElementById('submitButton'); 
sub.addEventListener('click', function(){ 
    let username = document.getElementById('my_text').value; 
    if(username){ 
    // Add Ajax Call Here 
    } 
}); 

+0

用戶的Sir值直到Ajax。用戶名不爲空。它正確地檢索值。但Ajax只發送我的數據來檢查數據.php –

+0

在你的'if'語句之前添加如下代碼:'console.log(username);'並告訴我們在控制檯中的含義 – DanielC

+0

if if statement I alert 。它顯示textarea滿輸出 –

0

Backup.html或php

<html> 
<head> 
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 
    <title>Text editor</title> 
    <link rel="stylesheet" type="text/css" href="style.css" /> 

    <script type="text/javascript"> 
    function view_text() { 
      var username=document.getElementById("my_text").value; 
    console.log(username); 
    if(username){ 

      $.ajax({ 
       type: 'post', 
       url: 'checkdata.php', 
       data: { 
       username:username, 
       }, 
       success: function (response){ 
        $('#name_status').html(response); 
        if(response=="OK"){ 
         return true;  

        } 
        else{ 
         return false; 
        } 
        } 
       }); 

    } 
    else{ 
     $('#name_status').html(""); 
     return false; 
    } 





     } 
     </script> 

</head> 
<body> 

    <input type="button" value="Execute >>" onclick="view_text()" class="button"/> 

     <textarea id="my_text" > 
       <html> 
       <head> 
        <title>Page Title</title> 
       </head> 
        <body> 
         <h1>My First Heading</h1> 
         <p>My first paragraph.</p> 
        </body> 
       </html> 
     </textarea> 

<span id="name_status"></span> 

</body> 
</html> 
+0

你在哪裏加載jQuery? – DanielC

+0

我沒有明白你的觀點。我問頭部? –

+0

你的文章使用jQuery。 $()和$ .ajax()屬於jQuery庫。但是我沒有看到你在任何地方導入jQuery。閱讀我在帖子中提出的第一個觀點...如果您實際上使用jQuery,但是您在代碼的開頭運行腳本標記中的代碼,那麼jQuery可能尚未提供。你需要$(document).ready() – DanielC