2010-04-05 35 views
0

有誰知道我怎樣才能得到一個輸入框的價值,沒有一個表單?我想要一個提交按鈕,但我不想提交表單,而是希望它改變MySQL數據庫中的數據。這樣的事情可能嗎?獲取輸入框的值,沒有表單?

$img1="WHAT DO I PUT HERE?" 
$idx=1 
$sql="INSERT INTO games SET img1='$img1' WHERE id=$idx"; 
$result=mysql_query($sql); 

我可以在「onclick」事件上使用該代碼嗎?輸入框的名稱和ID是「img1」。

+2

開關輸入是輸入? 如果是這樣,那麼如果<輸入不在<您發送的格式中,那麼PHP無法知道它有什麼價值... – confiq 2010-04-05 18:33:34

+0

爲什麼要關心您是否使用表單?如果你想要一個按鈕並且你想要字段,那看起來就像是一個合理的方法。 – MJB 2010-04-05 18:38:00

+0

使用帶有按鈕的輸入和帶有按鈕的輸入的窗體的區別在哪裏?你可以用表單數據做任何你想做的事,沒有人知道你在服務器端做什麼。 – 2010-04-05 18:39:37

回答

4

如果你不想提交一個表單,那麼完成這個的唯一兩個方法是在數據庫中單擊一個帶有數據的鏈接作爲查詢參數,或者使用AJAX將數據發送到服務器背景。

更新:

Javascript,像往常一樣。你可以在頁面的某個地方放上一個鏈接或按鈕,用「發送到服務器」或任何文字。腳本會從輸入字段中提取信息,然後通過AJAX調用將其發送到服務器。東西沿着這些路線(請注意,我用Mootools這一切,因爲它使生活不必做遠程調用自己容易得多):

function clickHandler() { 
    var img1 = $$("input[name='img1']")[0].value; 

    var r = new Request.JSON({ 
     'url: 'http://yourserver.example.com/script.php', 
     'method': 'post', 
     'onComplete': function(success) { alert('AJAX call status: ' + (success ? 'succeeded': 'failed!'); }, 
     'onFailure': function() { alert('Could not contact server'); }, 
     'data': 'img1=' + img1 
    }).send(); 
} 

,並在服務器上,你會碰到這樣的:

<?php 

$img1 = mysql_real_escape_string($_POST['img1']); 
$idx=1; 
$sql="INSERT INTO games SET img1='$img1' WHERE id=$idx"; 
$result=mysql_query($sql); 

echo (($result !== FALSE) ? 1 : 0); 

你可能想要比這更復雜的東西,但這是AJAX應用程序的基礎。某些客戶端JavaScript提出請求,並在服務器上處理它們並根據需要返回任何數據/錯誤。

+0

如何從輸入框中獲取要發送到URL中的數據? – 2010-04-05 18:39:28

+0

您需要使用JavaScript,因爲它可以訪問活動DOM,因此可以對其進行任何更改(如在字段的值)。 – dclowd9901 2010-04-05 18:49:56

0

不知道你是否完全反對使用表格或者可能不知道如何保持隱藏。

您可以創建一個隱藏表單,通過單擊按鈕來提交信息。

<form name="hidden-form" action="youraction.php" method="post"> 
<input type="hidden" name="submitme" value="I get submitted"> 
<input type="hidden" name="submitmetoo" value="I get submitted"> 
<input type="hidden" name="submitmeaswell" value="I get submitted"> 
<input type="hidden" name="dontleavemeout" value="I get submitted"> 
<input name="submit" type="submit" value="SUBMIT" /> 
</form> 

但是任何人看你的HTML就可以看到這個