2016-02-27 53 views
1

我有一個按鈕,鏈接到一個php文件,單擊後跟蹤用戶的電子郵件,但我不希望用戶離開頁面時單擊按鈕,我只是想改變按鈕的值。 這是表單的html。PHP表單提交按鈕,但不離開頁面

<form action="mysql-query.php" method="post"> 
<input type="text" name="email" style="display:none;"> 
<input type="submit" value="Press here" id="test" onclick="Press()"> 
</form> 

這是處理表單中的腳本:

<script> 
function Press() { 
    var test= document.getElementById("test"); 
    test.value="Thank you"; 
localStorage.value=("ok"); 
} 
</script> 

我把顯示:無;因爲我不想顯示除按鈕之外的任何內容,並且有一種方法可以與我的php文件進行連接。
任何想法?

回答

1

你需要使用AJAX:

HTML:

<form action="mysql-query.php" method="post" onsubmit="return Press(this)"> 
<input type="text" name="email" style="display:none;"> 
<input type="submit" value="Press here" id="test"> 
</form> 

JS:

function Press(form) { 
    $.post($(form).attr('action'), function() { 
     var test= document.getElementById("test"); 
     test.value="Thank you"; 
     localStorage.value=("ok"); 
    }); 
    return false; // prevent submitting the form 
} 

或更好的結合使用提交事件的jQuery:

$('form').submit(function() { 
    $.post($(this).attr('action'), function() { 
     var test= document.getElementById("test"); 
     test.value="Thank you"; 
     localStorage.value=("ok"); 
    }); 
    return false; // prevent submitting the form 
}); 
+0

謝謝我用你的第一個解決方案,它完美的工作!現在我可以更好地關注我的PHP文件! –

-1

你可以做的是刪除按鈕上的type =「submit」,並將其替換爲type =「button」。接下來,您可以對您的PHP執行ajax調用並執行您的魔法。

+0

AJAX調用是下一步或不同的方式來實現T'也可以給我發一些代碼或給我一個例子嗎?因爲我對AJAX知之甚少 –

+0

@ArgirisA http://www.w3schools.com/ajax/default.asp – Wilkoklak

+0

@Paresh Gami給了你代碼。 ajax所做的是調用一個文件,例如php,在你的情況下執行它。當一切都完成後,你會得到php在迴應中迴應的內容,並可以隨時隨地使用它。無需重新加載頁面。 –

1

用途:

<form action="javascript:void()"> 

好了,這件事情可以防止形式從任何地方發送數據,除非你使用「點擊」事件提交按鈕。

+0

我還想鏈接到php文件。你可以做到這一點,並有一個JavaScript無效的功能? –

+0

然後您需要使用AJAX。我在另一篇文章中給了你關於AJAX的w3schools部分的鏈接 – Wilkoklak

+0

雖然這段代碼片段可能解決這個問題,[包括解釋](http://meta.stackexchange.com/questions/114762/explaining-entirely-code-based -answers)真的有助於提高你的文章的質量。請記住,您將來會爲讀者回答問題,而這些人可能不知道您的代碼建議的原因。 - [來自評論](https://stackoverflow.com/review/low-quality-posts/11430379) – Ferrybig