台灣最大程式設計社群網站
線上人數
951
 
會員總數:246038
討論主題:189626
歡迎您免費加入會員
討論區列表 >> PHP >> JQ的html該怎麼處理可以如append&被再使用?
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
JQ的html該怎麼處理可以如append&被再使用?
價值 : 10 QP  點閱數:987 回應數:15
樓主

阿輝
門外漢
0 3
92 11
發送站內信

各位先進好~

請問一個JQ的問題~

這是我這兩天的練習.就是做一個左邊為已被選項目
右邊是可選項目.上圖就是右邊可選項目.
我有設定一個search的功能.
而下方那個add的功能就是勾選後按下add就可以把值送回左邊.並把右邊有打勾的值給隱藏起來.

現在的狀況是這樣.
search 和 add的功能在個別執行上都可以正常執行.
搜尋可以篩選出我要的值
沒有篩選前.add也可以把我要的項目增加到左邊去.

但是..
只有我用search搜尋後用html替換的內容.我就無法再利用add的功能加入到左邊.
但是用append把值累加到原列表時卻可以再利用add加入左邊選單.
我有把送出的值叫出來看.發現append就可以送出值但是html替換的卻不行.
有查了下是不是綁定的問題.不過看到文章都是綁定物件動作.而我的物件(ADD)也沒有重新被建立或是被替換.
被替換的是資料...

所以想問問.我該怎麼做這個search功能才可以再使用add加入至左邊呢?



這是我的 搜尋動作


這是我的add動作



單獨動作都是正常的.
但是先搜尋再add就無法送出用html創造物件的值了...

本篇文章發表於2015-06-15 23:23
1樓
最有價值解答

浩瀚星空
捐贈 VP 給 浩瀚星空 檢舉此回應
你的問題比較難判斷。
原本以為你可能是因為物件再建立的關係照成事件未綁定影響。不過看你的說明。你因該對此有了解。
所以我會排除是這個因素。

那就是另外一個因素了。搜尋時產生出來的物件可能不合法。
你可以先用瀏覽器的除錯器看看有沒有報錯。
本篇文章回覆於2015-06-16 09:22
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
作者回應

阿輝
檢舉此回應
報告~
看了console.
我搜尋出來的結果沒有報錯.還真是奇怪...==
我原本也是想說是不是沒綁定.所以才把live加入 search的動作中...
本篇文章回覆於2015-06-16 10:15
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
不錯的參考

孤獨是唯一永恆
捐贈 VP 給 Daimom 檢舉此回應
應該只能下中斷點看跑到哪裡中斷了吧?
本篇文章回覆於2015-06-16 10:55
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
不錯的參考

迷路
捐贈 VP 給 迷路 檢舉此回應
感覺是個有些麻煩的問題
先寫個基本版的提供參考

Add功能相當於原問題中的search,都是以JQ的方法新建物件,只是這裡是新增流水號物件而非用AJAX方式取得資料
Move功能相當於原問題的add,雖說我其實不明白為何搬移需要用到AJAX
本篇文章回覆於2015-06-16 10:56
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
回應

浩瀚星空
捐贈 VP 給 浩瀚星空 檢舉此回應
po一下你的原碼吧。
我想知道你的 $('#element_all_list').append(response.aaa);
是做了什麼。
response.aaa回傳的值可能是什麼。

這樣會比較容易找原因
本篇文章回覆於2015-06-16 11:03
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
6樓
作者回應

阿輝
檢舉此回應
報告 迷路大~
用append的方式其實我的動作是可以的說..
至於用ADD 用 JQ 是因為我是利用勾選出來的值再從SQL中取得更多資料出來顯示在左側.
因為JQ是自己爬文學.JAVA也沒有經過正式的訓練.所以JAVA的用法就不是很熟悉.
所以就利用JQ把資料送回後端用PHP整理之後再送回來顯示的啦 :)
謝謝你的原始碼.我會用他研究一下更多蒐尋器的使用..
本篇文章回覆於2015-06-16 12:44
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
7樓
作者回應

阿輝
檢舉此回應
報告 浩瀚星空 大

好的..
其實很簡單的就是,這是html & php
以下是用SQL找出來做成的checkbox串

再放到 id="element_all_list" 中.


按下搜尋


ajax動作



這是我的一段副程式,送出的SQL是為了方便我查看有沒有進行指定動作


SEARCH和ADD的動作獨立都是正常的..
送出的就僅是 checkbox 的串列..然後替換 element_all_list 內容值.
勞煩您幫我幫我看看是否哪裡有問題我沒有注意到..



本篇文章回覆於2015-06-16 12:59
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
8樓
你的adpro 是搜尋的文字欄位吧?
當你按下add的時候,把搜尋的文字欄位加到 右邊的 element_all_list裡面
然後把值丟到 ajax.php 再把 checkbox的語法丟出,流程沒錯吧?

能不能請你在 $('#element_selected').append(response.bbb); 上面,
輸入 console.log(response.bbb);
然後到主控台看一下他輸出什麼。

本篇文章回覆於2015-06-16 13:57
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
9樓
作者回應

阿輝
檢舉此回應
報告 孤獨是唯一永恆 大

顯示的是
本篇文章回覆於2015-06-16 14:25
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
10樓
作者回應

阿輝
檢舉此回應
各位先進~

我想我找到問題了.
因為我想要把我的程式拉出來給 浩瀚星空 大
所以有了這個東西.
https://mega.co.nz/#!I1MGwZzL!1t2PcetybNwJEc3TK1Z__4iJXafr-NvOwyr7M5GNKVc
↑這是我的原始碼.

而我這次出現問題不是語法的問題.而是我的容器?
詳見 index.php的 58 行.
只要我mark這段.. 程式就可以正常執行無誤.
但是.若是放開.程式就失效了..

為了一個DIV.這是為什麼呢?
我是分割成左右兩個DIV.用float橫擺.這應該不會阻擋JQ執行才對吧?


本篇文章回覆於2015-06-16 14:47
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
11樓
作者回應

阿輝
檢舉此回應
報告各位先進~

我真是個白癡 =.=
我想我找到問題點了..
我把<DIV>放在<FORM>之前...
但不是把</DIV>放在</FORM>之後...
造成這趟鬧劇真的很不好意思 謝謝各位的慷慨相助...

因為版主第一個回答且真的看了我的原碼.所以我把解答給版主星空大了..
先跟各位說聲謝謝 :)
本篇文章回覆於2015-06-16 15:35
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
12樓
作者回應

阿輝
檢舉此回應
真的不知道自己的回應怎麼編輯.
我發現可以分配點數.所以我就將點數依序分配.就不會讓也有心協助小弟的大大沒有收穫..謝謝大家
本篇文章回覆於2015-06-16 15:38
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
13樓
回應

浩瀚星空
捐贈 VP 給 浩瀚星空 檢舉此回應
................
原來你已經找到問題了。
我下載完還在看。就已經發現你的html有問題。
我看好久才知道你的問題@@"

因為你的input沒結束符。害我的編輯器無法自動對應

原因就是你找到的58行。因該要在59行下。也就是58跟59行對調就行了。
本篇文章回覆於2015-06-16 15:49
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
14樓
回應

浩瀚星空
捐贈 VP 給 浩瀚星空 檢舉此回應
在此多說明幾個寫程式的要點。

無結束符的標簽。如input img最好是養成習慣幫忙加一段結束符上去

<Input type="hidden" name="locate" value="1">
多加一段變成
<Input type="hidden" name="locate" value="1" />

何謂結束符。如<div></div>這樣就是一個區段。正常來說input也可以這樣寫。只是一般來講。input不會有str值的應用。
所以寫成<input></input>會感覺得奇怪

所以像這種不會有str區段的應用或是子節點的標簽符。就可以 <input />來代表一個段落。
這不是必要。瀏覽器都可以解讀。但目前很多編輯器都會照此規則在使用。
這樣會在編輯器上排版比較好處理。
本篇文章回覆於2015-06-16 15:54
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
15樓
回應

皮皮快跑
檢舉此回應
我有個建議。
如果不想浪費頻寬。
又希望變更資料就能變更你的view。
你可以試試angularJS或是react.JS
本篇文章回覆於2015-06-16 15:58
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.