2014-01-12 46 views
1

我嘗試(從index.php文件)發送到test.php的值我的ID,然後把的test.php的回聲結果在同一個頁面的PHP的index.php:jQuery的回報PHP

$('#MY_ID').click(function() 
    { 
    var name = $(this).attr('id'); 
    $.ajax(
     { 
      type: 'POST', 
      url: "test.php", 
      data: {name:name}, 
      success:function(result) 
      { 
      alert(result), 
       $.ajax(
        { 
         type:'POST', 
         url: "index.php", 
         data: {test_value:result}, 

         }); 

      } 
      }) 
     }); 

所以當我在php文件中使用:

<?php if (isset ($_POST['test_value'])){echo $_POST['test_value'];} 
     else echo 'rusu';?> 

呼應從test.php的結果,但不工作

+0

你檢查螢火蟲?特別是在'net'選項卡中。 –

+1

在'data:{test_value:result}'後面加上'success:function(result) {}', –

+0

我嘗試......但沒有結果:) –

回答

2

的PHP幾乎可以肯定是呼應正確的值(因爲你是直接輸出用戶輸入作爲HTML,使你容易受到XSS攻擊KS)。

您看不到結果,因爲您沒有success處理程序用於第二次撥打$.ajax

使用Ajax向當前頁面的URL發出HTTP請求會爲您提供一個新的HTTP響應,其中包含可用於JavaScript的數據。它不會追溯地覆蓋瀏覽器可能對同一個URL進行的任何現有呈現。

如果您想對數據做任何事情,您必須編寫JavaScript來接受並修改DOM。

+0

關於XSS漏洞......是不是真的?因爲我看到用戶可以做的所有事情都是自己的瀏覽器。 –

+0

@NiettheDarkAbsol - 它所需要的只是一個攻擊者的表單,其中'action'設置'index.php'的絕對URI和一些JavaScript來調用'thatForm.submit()'。數據來自第三方,它被髮送到網站,網站將其作爲HTML(可嵌入JavaScript)發回,瀏覽器將其視爲來自網站的任何其他數據。 – Quentin

+0

啊,我明白了。我明白了。無論如何,我不會這樣做(不是沒有禁令),所以我並不擔心,但感謝您解釋這一點。 –

0

您的通話$.ajax沒有定義success回調:

$.ajax({ 
    type: 'POST', 
    url: 'test.php', 
    data: { 'name': name}, 
    success: function(result) { 
     alert(result), 
     $.ajax({ 
      type:'POST', 
      url: 'index.php', 
      data: {'test_value': result}, 
      success: function(response) { 
       // Handle response here. 
      } 
     }); 
    } 
}); 
+0

我嘗試...但沒有結果:( –

+0

你如何處理'response'? – BenM

+0

我只是使用success:function(result){}; –