我正在使用scriptcase
,一個php代碼生成器。我有一個搜索表單,具有4個搜索字段,具體取決於其他數據。我想實現的是以下幾點:基於另一個字段的數據自動填充表單字段
- 如果用戶選擇在第一場
state
,第二場應該是自動充滿了state
的cities
。 city
被選中後,第三個字段將自動填充該城市的schools
。
我所有的數據都存儲在數據庫中的一個表中。我正在使用PHP
和MySQL
。
任何幫助,提示或方向非常感謝!
謝謝大家!
米雷拉·
我正在使用scriptcase
,一個php代碼生成器。我有一個搜索表單,具有4個搜索字段,具體取決於其他數據。我想實現的是以下幾點:基於另一個字段的數據自動填充表單字段
state
,第二場應該是自動充滿了state
的cities
。city
被選中後,第三個字段將自動填充該城市的schools
。我所有的數據都存儲在數據庫中的一個表中。我正在使用PHP
和MySQL
。
任何幫助,提示或方向非常感謝!
謝謝大家!
米雷拉·
當用戶選擇狀態ONSELECT狀態調用一個Ajax函數返回該國的城市和填充城市firld,在選擇一個城市調用另一個AJAX返回學校在這個城市的等等...
如果你試圖用後置代號任何它,我可以幫你
你問兩個問題:
在輸入B我想有一個自動完成框。
1:我建議看knoutoutjs library,它給你一個漂亮的界面中的JavaScript構建MVVM模式。
2:我會建議看一下jquery的自動填充框,這裏是一個nice live example。
function search(){
$q=$_GET["entry"];
$b=array();
$a; //get your database values to variable a;
if (strlen($q) > 0){
$lq=strtolower($q);
for($i=0; $i<count($a); $i++){
$la=strtolower($a[$i]->state);
if ((substr_count($la,$lq))>0){
$b[]=$a[$i]->state;
}
}
}
if (count($b)==0){
$response="no name exits with ". "<b>".$q."</b>";
echo $response;
} else {
$response=json_encode($b);
echo $response;
}
}
這是用Ajax調用後數據庫值的搜索代碼,現在在第一頁放這一個Ajax調用,並在與阿賈克斯
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script type="text/javascript" language="javascript">
function showhint(str){
if (str.length==0){
document.getElementById("create").innerHTML="";
return;
}
if (window.XMLHttpRequest){
xmlhttp=new XMLHttpRequest();
} else {
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange = function(){
if (xmlhttp.readyState==4 && xmlhttp.status==200){
hint=xmlhttp.responseText;
obj=eval('('+hint+')');
var create = '<select>';
for(i=0;i<obj.length;i++){
create += '<option>'+obj[i]+'</option>';
}
create += '</select>';
}
jQuery('#create').html(create);
}
xmlhttp.open("GET","search.php?entry="+str,true);
xmlhttp.send();
}
</script>
</head>
<body>
country name: <input type="text" onkeyup="showhint(this.value)" size="20" />
<br><br>
<span id="show"></span>
</body>
</html>
建立選擇框第二個代碼我把國家名稱作爲文本我認爲你使用它作爲選擇框你的邏輯可能會從調用函數onkeyup到onselect和數據庫記錄到$ a根據國名
我想到這個問題的解決方案,但我們將採取在考慮,我們不能包括scriptcase其他PHP文件...
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function()
{
$("#monedha").change(function()
{
var val=$(this).val();
var dataString="&val="+val;
//var dataString= fatura_file;
$.ajax
({
type: "GET",
url: "modules.php?name=Expenses_2&file=get_monedha_ajax",
data: dataString,
cache: false,
success: function(html)
{
$("#select_tr").empty();
$("#select_tr").append(html);
}
});
});
});
</script>
<?php
echo "<td align='right' width='50%' nowrap>Monedha:</td>";
echo "<td align='left' colspan='3'>";
echo "<select name='monedha' id='monedha'>";
echo "<option value='ALL' selected >Lek</option>";
echo "<option value='EUR' $ee>Euro</option>";
echo "<option value='USD' $eu>USD</option>";
echo "<option value='GBP' $eg>GBP</option>";
echo "</select>";
echo "</td>";
echo "</tr>";
echo "<tr bgcolor='$bgcol[0]'>";
echo "<td align='right' width='50%'>Llogaria:</td>";
echo "<td align='left' colspan='3'>";
if($error[11]) echo "<b><font color='red'>Please select Llogaria!</font></b><br>";
echo "<div >";
$kat = $db->sql_query("SELECT * FROM nuke_banks WHERE monedha='lek' OR monedha='ALL'");
echo "<select name='lloji' id='select_tr'>";
while($r = $db->sql_fetchrow($kat))
{
echo "<option value='".$r['id']."'> - ".$r['emer']."</option>";
}
echo "</select>";
echo "</div>";
?>
這裏是php文件modules.php?name=Expenses_2&file=get_monedha_ajax
它是用來調用第二的內容下拉:
if(isset($_GET['val'])){
$kat = $db->sql_query("SELECT * FROM banks $_GET['val']");
while($r = $db->sql_fetchrow($kat))
{
echo "<option value=".$r['id']."> - ".$r['emer']."</option>";
}
}
我不知道它可以用於scriptcase這樣... 注:這不是一個scriptcase代碼。這只是一個例子
這個問題可以從Scriptcase中完全解決。
以國家和城市爲例。假設這些字段分別是state_id和city_id。
在state_id字段中,選中Ajax處理框並選擇刷新city_id字段。
在city_id字段設置select語句是
SELECT city_id,city_name
FROM city_list
WHERE state_id = {state_id}
現在你會發現,選擇國家將刷新城市名單。您可以按照您的意願通過多個級別重複和級聯此過程。在大多數情況下,將「使用標題」設置爲是以便在下拉列表的頂部顯示一個空行。
Ajax是你的朋友 – Wearybands
@Glavic你是認真的嗎? – Wearybands
@GlavićHahahahahaha ...現在這些人的比例是什麼?現在,一個沒有在他們的機器上安裝JS的日子呢? – Wearybands