2013-05-16 38 views
2

在我的php代碼中,有一個表單中有多個提交按鈕,第一個表單的變量在點擊提交按鈕後分配值,第二種形式類似$ _POST []。在這裏我想使用第二次提交的第一次提交的值。如何使用另一個提交按鈕中的另一個提交按鈕內的變量php

我的代碼如下:

<?php 
global $name; 

      //BLOCK1 
    if($_POST['formSubmit'] == "Register Yourself") 
     { 
     global $name;   
     $name = $_POST['name']; 
     echo $name; 
    }; 
     // BLOCK 2 

    if($_POST['formSubmit1'] == "Register Yourself1") 
     { 
     global $name;   
     $id = $_POST['id']; 
     echo $id; 
      echo $name; // I want to print "$name" here 

    }; 

?> 
<html> 
<title>form</title> 
<body> 
<form action="<?php echo htmlentities($_SERVER['PHP_SELF']); ?>" method="post"> 
    <b> <label for='name'>Name: </label> </b> 
    <input type="text" name="name" maxlength="50" value="<?=$name;?>" /> 
<input type="submit" name="formSubmit" value="Register Yourself" /> 
<br/><br/> 
<b> <label for='id'> id: </label> </b> 
    <input type="text" name="id" maxlength="50" value="<?=$id;?>" /> 
<input type="submit" name="formSubmit1" value="Register Yourself1" /> 
</form> 
</body> 
</html> 

我試圖用給定here的概念。 在上面的程序中,我已經聲明變量$ name作爲全局內部和外部用於第二個。

請儘量找出錯誤,這樣我可以在第二塊內打印...

在此先感謝

+0

您不必內外聲明它,他們是如果測試不起作用。根本不需要使用全局。 – Pitchinnate

+0

我沒有得到你的意見....請澄清 – pali

+1

你需要閱讀:http://php.net/manual/en/language.variables.scope.php – Pitchinnate

回答

2

Pitchinnate解釋了正確的答案,但如果你是新來的PHP,你可能不瞭解評論。

您引用的鏈接是詢問如何在函數之間共享變量。上面示例中的代碼不使用函數;它使用「if」條件。

如果你的代碼不工作,它更多地與你使用$ _POST數組有關。當用戶提交表單時,他們點擊哪個按鈕並不重要; $ _POST數組將包含來自這種形式的各種輸入的所有數據。所以你可能有更多的成功與這樣的事情:

// let's set up the empty variables for clarity's sake 
$name = ''; 
$id = ''; 

// now check if the $_POST array has stuff in it 
if(!empty($_POST)) 
{ 
    if (!empty($_POST['name'])) { 
     $name = $_POST['name']; 
     echo '<p>' . $name . '</p>'; 
    } 

    if (!empty($_POST['name'])) { 
     $id = $_POST['id']; 
     echo '<p>' . $id . '</p>'; 
    } 
}; 

<form action="" method="post"> 
    <b> <label for='name'>Name: </label> </b> 
    <input type="text" name="name" maxlength="50" value="<?=$name;?>" /> 
    <br/><br/> 
    <b><label for='id'> id: </label> </b> 
    <input type="text" name="id" maxlength="50" value="<?=$id;?>" /> 
    <br /><br /> 
    <input type="submit" name="formSubmit" value="Register Yourself" /> 
</form> 

你真的只需要一個提交按鈕。當用戶單擊該按鈕時,表單將被提交給服務器,並且服務器將把輸入字段中的值放入$ _POST數組中。另外,如果希望表單提交給自己,您只需指定action =「」並且服務器將假定您將重新提交到當前頁面。

+0

是bethadele,我對PHP編程非常陌生,我理解您的解決方案...但我想使用$ id和$ name的值進行數據庫查詢,所以您可以請解釋我該怎麼做...在此先感謝....... – pali

+0

嗨bethadele,我在我的原始程序中有一些懷疑,這些都從你的解決方案中清除了......它的工作現在:) thnks – pali

1

我在想,下面的值是不正確的,如果你沒有得到你想要的值。

 if($_POST['formSubmit'] == "Register Yourself") 

if($_POST['formSubmit1'] == "Register Yourself1") 

所以,我會建議你嘗試這種代碼:

if($_POST['formSubmit'] == "Register Yourself") 
     { 

    echo $_POST['name']; 
    }else{ 
     echo 'formSubmit = '.$_POST['formSubmit']; 
    } 
     // BLOCK 2 

    if($_POST['formSubmit1'] == "Register Yourself1") 
     { 
    echo $_POST['id'].'<Br/>'; 
    echo $_POST['name'].'<Br/>'; 


    }else{ 
     echo 'formSubmit1 = '.$_POST['formSubmit']; 

它會告訴你,如果POST不匹配值

相關問題