2017-01-16 38 views
-4

我有文件page.php文件Insert.php如何得到的值:從HTML表單

<html> 
    <body> 
    <span contenteditable style='border:1px solid#000;display:block;width:99'></span> 
    <select><option style=display:none>Select</option><option>Yes</option><option>No</option></select> 
    <form action=Insert.php> 
     <input type=submit> 
    </form> 
    </body> 
</html> 

<?php 
    $c=mysqli_connect('localhost','root','','database name'); 
    $DATETIME="2017-01-16 14:54:06"; 
    $span="Text inserted."; 
    $select="No"; 
    mysqli_query($c,"insert into`table name`(`column 1 name`,`column 2 name`,`column 3 name`)values('$DATETIME','$span','$select')"); 
?> 

我怎樣才能使變量$DATETIME$span$select等於:當前日期(例如:2017-01-16 14:54:06),<span>的內容(例如:文本插入。)和從el中選擇的選項ement <select>(例如:是)?

我正在使用XAMPP和PhPMyAdmin。

+3

所以基本上你問如何從表格中獲取你的值 –

+0

@YourCommonSense你的個人資料圖片是如此相關,它是怪異的。 – roberto06

+0

不要使用span來獲取表單中的用戶輸入,而是使用'「。 –

回答

0

如上所述,您的選擇不在您的表單元素之內,因此開始時應該修復。通常你也會提供一個表單方法(它默認爲獲取,但是如果你指定的話,IMO更清晰)。

<html> 
    <body> 
    <span contenteditable style='border:1px solid#000;display:block;width:99'></span> 

    <form action=Insert.php method="post"> 
     <select> 
      <option style=display:none>Select</option> 
      <option>Yes</option><option>No</option> 
     </select> 
     <input type=submit> 
    </form> 
    </body> 
</html> 

然後你需要從$ _POST數組中獲取數據並過濾它。在您的代碼示例中,您使用的是虛擬變量而不是表單中的任何內容,因此下一部分我將重複該內容。

<?php 
    // DB connect 
    $c=mysqli_connect('localhost','root','','database name'); 

    // Dummy vars 
    $DATETIME="2017-01-16 14:54:06"; 
    $span="Text inserted."; 
    $select="No"; 

    // Query String examples (extra format for readability) 
    $query1 = "insert into`table name`(
     `column 1 name`, 
     `column 2 name`, 
     `column 3 name` 
    ) values (
     '". $DATETIME ."', 
     '". $span ."', 
     '". $select ."' 
    )"; 

    $query2 = "insert into`table name`(
     `column 1 name`, 
     `column 2 name`, 
     `column 3 name` 
    ) values (
     '{$DATETIME}', 
     '{$span}', 
     '{$select}' 
    )"; 

    // Run Query 
    mysqli_query($c, $query); 
?> 

這兩個查詢字符串示例使用1)串聯,2)插值。使用哪一個看起來更容易閱讀。

0

這是一個非常普遍的問題,你可以查看this鏈接的基本例子。

不管怎麼說,這裏是你的解決方案:

首先,你必須調整你的HTML。你必須把你的表格的所有相關領域在這樣的表單標籤:

<html> 
    <body> 
     <form action="insert.php"> 
      // Here all your input, select, textarea etc. fields 
      <input type="submit" /> 
     </form> 
    </body> 
</html> 

接下來,你不能在一個表單提交<span>的價值。使用<input> -elements代替:

<input type="text" /> 

或檢查出的JavaScript( - >XHR),您可以與解決此問題。

然後,你必須設置name -Attribute在所有要提交的字段:

<input type="text" name="myTextField" /> 
<select name="mySelect"> 
    ... 
</select> 

當你實現這個代碼,你可以用自己的價值觀insert.php這樣的:

$text = $_POST['myTextField']; 
$select = $_POST['mySelect']; 

提示:在您的PHP-File中使用echo "<pre>".var_dump($_POST)."</pre>";來檢查表單中的值。

當前的時間可以很容易地在PHP可以得到與date()

$datetime = date('Y-m-d h:i:s'); 

注: 如果繼續這個項目,並考慮去住這個,請先閱讀this文章,它告訴你您的網站的安全問題的基本知識以及關於危險的SQL注入的文章this