2014-02-05 83 views
-1

好吧,我想加載PHP的結果提交到div。出於某種原因,它不會按我的方式工作,我做的方式是加載整個php腳本,以防我不想要的女巫。那麼還有另一種方法可以做到嗎?我怎樣才能看到PHP的結果在div

function loginForm(){ 
    echo' 
    <div id="loginform"> 
    <form action="index.php" method="post"> 
     <input type="text" name="name" id="name" /> 
     <input type="text" phone="phone" id="name" /> 
     <input type="text" email="email" id="name" /> 
     <input type="submit" name="enter" id="enter" value="Enter" /> 
    </form> <div id="errornofill"> </div>'; 
} 

我需要上面的錯誤的結果是在errornofill我也嘗試像

在HTML '.$errornofill.' </div>'; 在PHP $errornofill = echo "<br /><span class=error>Please type in your Email</span><br />";

但culdint使用它是因爲真的會礦脈整個PHP代碼提前,如果我嘗試別的東西,它根本不會顯示。如果這是有道理的,我個人不知道

所以我做了這個。但我如何得到結果在div中?

if(isset($_POST['enter'])){ 
       $_SESSION['name'] = stripslashes(htmlspecialchars($_POST['name'])); 
     $phone = $_POST['phone']; 
     $email = $_POST['email']; 
    if ((empty($name))) { echo '<br /><span class="error">Please type in a name</span><br />', {id: id}); 
    } 
    if ((empty($phone))) { echo '<br /><span class="error">Please type in your phone</span><br />'; 
    } 
    if ((empty($email))) { echo '<br /><span class="error">Please type in your Email</span><br />'; 
    } 

// Alot of cods here 
$name = $_SESSION['name']; // Just to see what lods i added this 
    } 
    else 
} 

回答

0

而不是回顯你的錯誤,把它們放在一個變種,然後輸出它們。

$error_output = ""; 
if(isset($_POST['enter'])){ 
       $_SESSION['name'] = stripslashes(htmlspecialchars($_POST['name'])); 
     $phone = $_POST['phone']; 
     $email = $_POST['email']; 
    if ((empty($name))) { 

$error_output .= '<br /><span class="error">Please type in a name</span><br />', {id: id}); 
    } 
    if ((empty($phone))) { 
$error_output .= '<br /><span class="error">Please type in your phone</span><br />'; 
    } 
    if ((empty($email))) { 
$error_output .= '<br /><span class="error">Please type in your Email</span><br />'; 
    } 


$name = $_SESSION['name']; // Just to see what lods i added this 
    } 

echo '<div id="loginform"> 
    <form action="index.php" method="post"> 
     <input type="text" name="name" id="name" /> 
     <input type="text" phone="phone" id="name" /> 
     <input type="text" email="email" id="name" /> 
     <input type="submit" name="enter" id="enter" value="Enter" /> 
    </form> <div id="errornofill">' . $error_output . '</div>'; 

+0

好的工作愛你的答案我會在一些PHP的erorrs我工作。如果我有2 if(isset($ _ POST ['enter'])){它會影響另一個?嗯,我想我會嘗試修復一些代碼,然後再繼續前進,並讓別人做我的工作lmoh但是,是的,那些quchtion會幫助我理解我是否應該繼續或留在這裏。謝謝 –

+0

我只是想親自爲你感謝。我玩了代碼我修復了所有的錯誤。 –

0

你可以單獨的文件和重命名你的模板文件或在您的DIV加價是.php在推廣和使用PHP的包括。

<?php include 'path/to/your/php/script.php'; ?> 

更多信息:http://www.php.net/manual/en/function.include.php

+0

我不完全明白它會有什麼幫助。我知道什麼包括HTML和PHP是在同一頁面上。如果我將代碼分離到包含文件中,它會有什麼幫助?你能解釋這個好一點嗎?謝謝 –

0

創建一個變量例如$ errOutput在檢查前,然後取代echo-ING的錯誤,你做

$errOutput .= '<span>....; 

這將創建一個與您所有的錯誤警告一個字符串,它可以輸出如下:

echo '<div id="errornofill">'.$errOutput.'</div>'; 
+0

我已經試過了。如果我把html放在兩者之間或長php代碼之後,html表格就不會顯示出來。這將成爲豆類的一個格柵答案。但是,我那漫長的瘋狂代碼在最後並不會拖延它。 +1爲你tho :) –

+1

我真的不明白你的問題。你知道一個PHP腳本總是會一次產生所有輸出嗎?如果您重新加載或提交表單,它會再次顯示所有內容。請編輯您的答案以顯示您的PHP腳本的結構,我認爲這是問題所在。 –

0

您可以打開並隨時關閉php標籤,這樣你就可以首先計算所有你需要的,然後在HTML中回顯它,或者做一些驗證。

例如:

<?php 
$number = 4; 
if($number == 4) 
{ 
?> 
<h1>This will be visible if conditions met.</h1> 
<?php 
} // Close the if sentence. 
else { 
?> 
<h1>This will be visible if conditions don't met.</h1> 
<?php 
} // Close else. 
?> 

所以基本上你可以把你的形式和顯示任何根據結果,你可以在行動之前檢查錯誤。

就像我之前說的,你可以選擇你想要的任何地方你的PHP代碼,這裏是另一個例子:

<?php 
$name = 'John'; 
?> 
<h1>Hello my name is <?php echo $name; ?></h1> 

您可能要檢查表已首次提交,所以如果沒有提交你可以顯示它,或者編程它的行爲。