2012-11-01 103 views
0

我嘗試使用jQuery和ajax發送一個變量到php腳本。然後,我想在創建文件名時使用該變量,但失敗。文件名稱始終爲「0」,不位於目錄「重定向」。PHP解碼ajax發送變量錯誤

下面是代碼:

阿賈克斯:

var pageName=$('#movie').val(); 

    $.ajax({ 
     type: "POST", 
     url: "phpstuff.php", 
     data: { pageName: 'pageName'}, 
     cache: false, 
     success: function() 
      { 
       alert(pageName); 
      } 
    }); 

的 「頁面名稱」 變量從一個輸入框獲得值與ID 「電影」

php文件

function createPage ($newPage){ 

$file=fopen("redirect/"+$newPage+".php","w") or exit("Fail to create the page"); 
$data = "some text I want to be in a file"; 
fwrite ($file, $data); 
fclose($file); 
} 

$newPage = $_POST["pageName"]; 
createPage($newPage); 

我已經搜索了幾個小時的網絡,仍然無法解決問題。

+0

你能回顯'$ _POST [「pageName」]'併發布結果。 –

+0

你看起來像你試圖發送純數據的json數據 試試這個: data:「pageName = pageName」, – andrew

+0

@andrew JSON是'data'的有效參數。 –

回答

3

字符串連接應.做到:

"redirect/" . $newPage . ".php" 
+0

多麼愚蠢的我,謝謝,現在它工作:D我已經瘋了。 –

1

嘗試改變這一行:

$file=fopen("redirect/"+$newPage+".php","w") or exit("Fail to create the page"); 

$file=fopen("redirect/".$newPage.".php","w") or exit("Fail to create the page"); 

通知的變化,從+.。在PHP +是用於添加,並且.用於字符串連接。

+0

是的,謝謝,這工作:) –

4

data: { pageName: 'pageName'}, 

應該

data: { pageName: pageName}, 

一的print_r($ _ POST [ 「頁面名」])會告訴你什麼是被傳遞,在第一個版本$ _ POST [ 「頁面名」 ]是 '頁面名稱'

你也可以使用

data: 'pageName='+pageName, 

關於數據參數http://api.jquery.com/jQuery.ajax/的描述不是很清楚,因爲它談到GET並且不提及POST。

+0

謝謝,這幫助我發送正確的pageName –