2015-04-23 57 views
-1

我有一個網站,可以讓用戶選擇喜歡的網站,訪問網站的日期,評論他們對當天訪問的網站的滿意度。最初有四行被硬編碼並插入到mysql數據庫中。然後有一個添加按鈕,使用戶可以選擇更多的網站添加到現有的網站,還有相關的訪問日期和評論。問題是如何將額外選定的收藏網站插入到數據庫中。如何將動態克隆的元素插入到mysql數據庫?

這裏是我的代碼jsfiddle.net/j8odptds/

  var cloneIndex = $('#websites').length+4; 
     $('#add').on('click', function() { 
      var newElem = $('#websites').clone().appendTo('#addMoreWebsite').attr('id','website' + cloneIndex); 
      $(newElem).find('[id=website4]').attr('name','website' + (cloneIndex)); 
      $(newElem).find('[id=website4]').attr('id','website' + (cloneIndex)); 

      $(newElem).find('[id=Date4]').attr('name','Date' + (cloneIndex)); 
      $(newElem).find('[id=Date4]').attr('id','Date' + (cloneIndex)); 

      $(newElem).find('[id=Comments4]').attr('name','Comments' + (cloneIndex)); 
      $(newElem).find('[id=Comments4]').attr('id','Comments' + (cloneIndex)); 

      cloneIndex++; 
     }); 
    <div class="well"> 
     <div class="row"> 
      <div class="col-xs-3"> 
       <h4>Favourite web</h4> 
      </div> 
      <div class="col-xs-2"> 
       <h4>Date of visit</h4> 
      </div> 
      <div class="col-xs-3"> 
        <h4>Comments</h4> 
      </div> 
      </div> 
     </div> 
     <div class="row"> 
     <div class="col-xs-3"> 
     <select class="form-control input-sm" name="website1" id="website1"> 
     <option>google</option> 
     <option>msn</option> 
     <option>youtube</option> 
     <option>linkedin</option> 
     <option>facebook</option> 
     <option>skyscanners</option> 
     <option>stackoverflow</option> 
     </select> 
     </div> 
     <div class="col-xs-2"> 
     <input class="form-control input-sm" type="date" name="Date"> 
     </div> 
     <div class="col-xs-3"> 
     <textarea class="form-control input-sm" rows="3" name="Comments">    </textarea> 
    </div> 
<br> 
<div class="row"> 
    <div class="col-xs-3"> 
    <select class="form-control input-sm" name="website2" id="website2"> 
     <option>google</option> 
     <option>msn</option> 
     <option>youtube</option> 
     <option>linkedin</option> 
     <option>facebook</option> 
     <option>skyscanners</option> 
     <option>stackoverflow</option> 
    </select> 
    </div> 
    <div class="col-xs-2"> 
    <input class="form-control input-sm" type="date" name="Date2" placeholder="dd/mm/yyyy"> 
    </div> 
    <div class="col-xs-3"> 
    <textarea class="form-control input-sm" rows="3" name="Comments2"></textarea> 
    </div> 
<br> 
<div class="row"> 
    <div class="col-xs-3"> 
    <select class="form-control input-sm" name="website3" id="website3"> 
     <option>google</option> 
     <option>msn</option> 
     <option>youtube</option> 
     <option>linkedin</option> 
     <option>facebook</option> 
     <option>skyscanners</option> 
     <option>stackoverflow</option> 
    </select> 
    </div> 
    <div class="col-xs-2"> 
    <input class="form-control input-sm" type="date" name="Date3" placeholder="dd/mm/yyyy"> 
    </div> 
    <div class="col-xs-3"> 
    <textarea class="form-control input-sm" rows="3" name="Comments3"></textarea> 
    </div> 
<br> 
<div class="row" id="websites"> 
    <div class="col-xs-3"> 
    <select class="form-control input-sm" name="website4" id="website4"> 
     <option>google</option> 
     <option>msn</option> 
     <option>youtube</option> 
     <option>linkedin</option> 
     <option>facebook</option> 
     <option>skyscanners</option> 
     <option>stackoverflow</option> 
    </select> 
    <br> 
    </div> 
    <div class="col-xs-2"> 
    <input class="form-control input-sm" type="date" name="Date4" id="Date4" placeholder="dd/mm/yyyy"> 
    </div> 
    <div class="col-xs-3"> 
    <textarea class="form-control input-sm" rows="3" name="Comments4" id="Comments4"></textarea> 
    </div> 
</div> 
<div id="addMoreWebsite"></div> 
    <button type="button" class="btn btn-primary btn-sm" name="add"  id="add">Add more Website</button> 
+1

我是唯一沒有得到這個問題的人嗎? :)你是否要求用戶界面幫助(它應該如何以及何時保存)?還是嚴格的技術(如何通過PHP在MySQL中保存來自JS/HTML的數據)? –

+0

對不起,每次出現頁面時都會出現問題,用戶可以選擇四個最喜歡的網站,而無需點擊「添加更多網站」按鈕。然而,有些用戶會有更喜歡的網站,然後他們可以點擊添加按鈕添加更喜歡的網站,比如說網站5,網站6,網站7等,我可以存儲前4個最喜歡的網站,但是我怎樣才能存儲網站5, 6和7到MySQL數據庫 – user3575530

+0

在我看來,關係是一個答案。您有表格User和Table Website。創建表User_favorite_website您將在其中存儲user_id和website_id(它可以包含字段COMMENT以及更多)。這樣一個用戶將能夠擁有4個以上的網站。 用於連接來自此表的數據您必須使用MySQL語法:JOIN https://dev.mysql.com/doc/refman/5.0/en/join.html –

回答

0

你要通過所有的值到PHP作爲數組。所以你所有的輸入必須有name="namespace[rowId]name"。在PHP中,您只需循環該數組並將所有值插入數據庫。

<div class="wrapper"> 
    <input type="text" name="Website[0]name"/> 
    <select name="Website[0]rating"><option></option></select> 
</div> 

<button type="button" onClick="addRow()">Add row</button> 

var lastRow = 0; 
function addRow() { 
    lastRow++; 
    $('.wrappper').append(
     '<input type="text" name="Website[' + lastRow + ']name"/>' 
     + '<select name="Website[' + lastRow + ']rating"><option></option></select>' 
    ); 
} 

[php] 
foreach ($_POST['Website'] as $website) { 
    $this->db->insert(array(
     'name' => $website['name'], 
     'rating' => $website['rating'], 
    )); 
} 
+0

感謝一個工廠的幫助,我現在看到我需要爲php創建數組來循環訪問其他元素,然後插入到數據庫中,現在我將嘗試它。 – user3575530

相關問題