簡體   English   中英

使用ajax將javascript變量傳遞給php,結果不顯示任何內容

[英]Pass javascript variable to php with ajax and the result doesn't show anything

這是我的代碼,我想將javascript變量與ajax傳遞給php,當我點擊提交按鈕然后結果不顯示來自javascript的var_data變量什么代碼有錯? 在大家幫助我之前,這是一個編輯順序

 <!DOCTYPE html>
<html>
<head>

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js"></script>
<script>
        $(document).ready(function() {
            $('#sub').click(function() {
                var var_data = "Hello World";
                $.ajax({
                    url: 'http://localhost/ajax/PassVariable.php',
                    type: 'GET',
                     data: { var_PHP_data: var_data },
                     success: function(data) {
                         // do something;

                     }
                 });
             });
         });
 </script>

 </head>
 <body>

 <input type="submit" value="Submit" id="sub"/>

 <?php 
   $test = $_GET['var_PHP_data'];
     echo $test;
 ?>
 </body>
 </html>

這是源代碼

 <?php
     if (isset($_GET['var_PHP_data'])) {
       echo $_GET['var_PHP_data'];
     } else {
     ?>
     <!DOCTYPE html>
     <html>
       <head>
            <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7/jquery.js"></script> 
            <script src="http://malsup.github.com/jquery.form.js"></script> 
         <script>
             $(document).ready(function() {
                 $('#sub').click(function() {
                     var var_data = "Hello World";
                     $.ajax({
                         url: 'http://localhost/test.php',
                         type: 'GET',
                          data: { var_PHP_data: var_data },
                          success: function(data) {
                              // do something;
                             $('#result').html(data)
                          }
                      });
                  });
              });
         </script>
       </head>
       <body>
         <input type="submit" value="Submit" id="sub"/>
         <div id="result">
       </body>
     </html>
    <?php } ?>

這句話如果(isset($ _ GET ['var_PHP_data']))輸出false然后顯示Hello World我該怎么做才能為isset做什么($ _ GET ['var_PHP_data'])是真的嗎?

您的解決方案存在PHP問題:您不檢查數據是否存在,並且您不對結果執行任何操作。 我已修改腳本以執行以下操作:

  1. 檢查var_PHP_data var是否已設置(在PHP中,在服務器上)。
  2. 如果是,請發送包含該數據的空白文本響應。
  3. 如果不是,則繪制表單和其他所有內容。
  4. 在表單中,我創建了一個#result div。
  5. Ajax響應將顯示在此div中。

還要確保您在localhost上托管腳本,並將其命名為test.php。 為了確保這是有彈性的,您可以將Ajax URL更改為<?php echo $_SERVER['PHP_SELF'];?>以確保您將使用正確的腳本。

<?php
    if (isset($_GET['var_PHP_data'])) {
      echo $_GET['var_PHP_data'];
    } else {
    ?>
    <!DOCTYPE html>
    <html>
      <head>
        <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js">
        <script>
            $(document).ready(function() {
                $('#sub').click(function() {
                    var var_data = "Hello World";
                    $.ajax({
                        url: 'http://localhost/test.php',
                        type: 'GET',
                         data: { var_PHP_data: var_data },
                         success: function(data) {
                             // do something;
                            $('#result').html(data)
                         }
                     });
                 });
             });
        </script>
      </head>
      <body>
        <input type="submit" value="Submit" id="sub"/>
        <div id="result">
      </body>
    </html>
    <?php } ?>

試試jQuery Form,這將有助於解決許多問題。

對於你的問題:嘗試沒有域名的網址,添加標簽'表單',更改事件點擊提交,添加數據類型

PassVariable.php的內容是什么? 如果是相同的你在哪里他們jquery位不會工作coz php將再次打印所有頁面,如果文件不同嘗試

success: function(data) {
                     alert('databack = '+ data);

                 }

嘗試將輸入放入表單並將ajax調用附加到表單onsubmit事件。 它在提供的事件中發生的方式是當你在字段中單擊時,在這種情況下它提交之前你可以真正寫任何東西。

$(document).ready(function() {
        $('#brn').click(function() {
            var var_data = "Hello World";
            alert("click works");
            $.ajax({
                url: 'http://localhost/ajax/PassVariable.php',
                type: 'GET',
                 data: { x: var_data },
                 success: function(data) {
                     alert(data);

                 }
             });
         });
     });

將其更改為此代碼

然后在PassVariable.php中放

制作按鈕

<input type="button" id="btn"  value="click me" />

它應該工作,因為它是非常基本的例子。 如果它不起作用,請檢查您的控制台是否存在任何JavaScript錯誤並將其刪除。

暫無
暫無

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

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