2013-04-08 66 views
1

我正在創建一個應用程序來註冊總線路由,給它一次路由名稱,並創建一個文本框和一個選擇框動態爲用戶創建一個公交站儘可能多的路線。 這是我的CodeIgniter的視圖:一個腳本來創建文本框,並在窗體div中動態地選擇框。如何發佈數據庫中的任何形式的值

我想有領域按照我的數據的基礎上發佈其輸入的數據:

route_number  stop_name am_pm timing 

能否請你幫我笨模式控制器功能?該觀點如下:

<form method='post' action='<?php echo site_url('a3_bus_system/output')?>'> 
<div class="_25"> 
<strong>Route Name/Number</strong> 
    <br/> 
<input type="text" name=""></input> 
</div> 
<p>&nbsp;<p>&nbsp;</p></p> 
<p>&nbsp;<p>&nbsp;</p></p> 
<div id="div"> 
</div> 
<p>&nbsp;</p><div class="_25"> 
<p><input type="button" name="button" class="button red" id="button" value="Add" onclick="generateRow() "/></a></p> 
</div> 
<input type='button' value='Remove Button' id='removeButton'> 
<p>&nbsp;</p><p>&nbsp;</p></div> 
<input type="submit" class="button blue" id="button" value="Register" /> 
/form> 
</div> 
</div> 
<div class="clear height-fix"></div> 
</div></div> <!--! end of #main-content --> 
</div> <!--! end of #main --> 
<script> 
var counter=1; 
    function generateRow() { 
var count="<font color='red'>"+counter+"</font>"; 
var temp ="<p>&nbsp;&nbsp;&nbsp;&nbsp;<div class='_25'><input type='textbox' id='textbox' name='stop"+counter+"' placeholder='Stop Name'></input></div>&nbsp;&nbsp;&nbsp;<div class='_25'><input type='textbox' id='textbox' name='timing"+counter+"' placeholder='Timing'></input></div>&nbsp;<div class='_25'><select id='ampm"+counter+"' name='ampm"+counter+"'><option>a.m</option><option>p.m</option></select> </div>"; 
var newdiv = document.createElement('div'); 
newdiv.innerHTML = temp + count; 
var yourDiv = document.getElementById('div'); 
yourDiv.appendChild(newdiv); 
counter++; 
} 
</script> 
+7

所以這就是爲什麼公交車後期運行.... – Shark 2013-04-08 16:41:46

+2

yaaa現在可以üPLZ讓它準時運行? – user2180069 2013-04-08 16:42:48

+0

問題在哪裏?我的意思是這個問題? – itachi 2013-04-08 16:45:22

回答

0

您需要將表格提交到同一個PHP文件,通過傳遞counter參數我們知道數據已經提交了多少集那麼我們可以將數據插入到數據庫。提交表單後,下面的PHP代碼將數據插入到數據庫:

<?php 
if(!empty($_POST["counter"]) && !empty($_POST["route"])){ 
    $counter = $_POST["counter"]; 
    $route = $_POST["route"]; 
    $pdo  = new mysqli("host", "username", "password", "database"); 
    $stmt = "INSERT INTO table_name(route_number, stop_name, am_pm, timing) VALUES(?, ?, ?, ?)"; 
    $insert = $pdo->prepare($stmt); 

    for($i = 1; $i <= $counter; $i++) 
    { 
     $stop = $_POST["stop" . $i]; 
     $timing = $_POST["timing" . $i]; 
     $ampm = $_POST["ampm" . $i]; 
     $insert->bind_param("isss", $route, $stop, $ampm, $timing); 
     $insert->execute(); 
    } 
    $stmt->close(); 
    $pdo->close(); 
} 
?> 


<!DOCTYPE html> 
<html lang="en"> 
<head> 
<meta charset="utf-8" /> 
<title>Buss Routes</title> 
<script type="text/javascript"> 
    var counter = 1; 

    function generateRow() { 
     var count = "<p align='center' ><font color='red'>" + counter + "</font></p></div>"; 
     var temp = "<div id='container" + counter + "' class='_25' >" 
      + "<input type='text' name='stop" + counter + "' placeholder='Stop Name' />" 
      + "<input type='text' name='timing" + counter + "' placeholder='Timing' />" 
      + "<select name='ampm" + counter + "'><option>a.m</option><option>p.m</option></select>" 
      + "<input type='button' onClick='Javascript:this.parentNode.remove(); counter--;' value='Remove' />"; 
     var newdiv = document.createElement('div'); 
     newdiv.innerHTML = temp + count; 
     document.getElementById('div').appendChild(newdiv); 
     document.getElementById('counter').value = counter; 
     counter++; 
    } 
</script> 
</head> 
<body> 
    <form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>" > 
    <div class="_25"> 
     <p align="center"><strong>Route Name/Number</strong></p> 
     <input type="text" name="route" placeholder="Route Number" /> 
    </div> 
    <div id="div"></div> 
    <div class="_25"> 
     <input type="button" class="button red" value="Add" onclick="generateRow()" /> 
     <input type="hidden" name="counter" id="counter" /> 
     <input type="submit" class="button blue" value="Register" /> 
    </div> 
    </form> 
<div class="clear height-fix" ></div> 
</body> 
</html> 

這裏有一個演示展示了JavaScript代碼是如何工作的:jsfiddle

更換hostdatabaseusernamepassword與您的服務器的詳細信息和table_name與包含數據的表名。


對於CodeIgniter的嘗試,而不是上面的PHP代碼本(未測試,我從來沒有使用過笨過,但通過檢查這應該工作在ellislab網站上的文檔):

<?php 
if(!empty($_POST["counter"]) && !empty($_POST["route"])){ 
    $counter = $_POST["counter"]; 
    $route = $_POST["route"]; 
    $this->load->database(); 

    for($i = 1; $i <= $counter; $i++) 
    { 
     $data = (
      'route_number' => $route, 
      'stop_name' => $_POST["stop" . $i], 
      'am_pm'  => $_POST["ampm" . $i], 
      'timing'  => $_POST["timing" . $i] 
     ); 
     $this->db->insert('mytable', $data); 
    } 
} 
?> 
相關問題