我的項目是PHP/MySQL。我正在使用Smarty作爲模板引擎。jQuery .change加載不同的.php文件
我在智者文件< select>標籤:
maps.tpl -
<script src="http://code.jquery.com/jquery-1.5.js"></script>
<form method="post" action="maps.php">
<td colspan="3">
<select id="cmdview" name="cmd">
<option value=""></option>
<option value="commdata" {if $cmdOn == "commdata"}selected="true"{/if}>Communications</option>
<option value="contacts" {if $cmdOn == "contacts"}selected="true"{/if}>Contacts</option>
<option value="enrollment" {if $cmdOn == "enrollment"}selected="true"{/if}>Enrollment</option>
<option value="all" {if $cmdOn == "all"}selected="true"{/if}>All Schools</option>
</select>
<input type="submit" name="doSwitch" value="Submit" />
</td>
<div id="append"></div2>
</form>
到目前爲止,我的jQuery代碼發現其價值選擇:
{literal}
<script>
$('#cmdview').change(function() {
//alert('Handler for .change() called.');
var str = "";
url = "maps_append.php";
$("select option:selected").each(function() {
str += $(this).text() + " ";
});
$('#append').text(str);
})
.change();
</script>
{/literal}
我需要jQuery來監聽「cmdview」的值,然後將該值發佈到文件:maps_append.php。我需要該文件.append /。更改當前文件(maps.php/maps.tpl)而不重新加載。
但是,我的jQuery只有一半工作。 jQuery的確找到了我想要傳遞的值,並且我已經知道它在ID爲#append的< .d.i.v。>標記中加載了正確的值。我似乎無法做的唯一的事情就是取值,實際上它張貼到maps_append.php
任何幫助將非常感激!
謝謝!
PS:我覺得變化將是這樣的:
這需要更換:
$('#append').text(str);
})
.change();
像這樣的東西:
url = "maps_append.php";
$.post(url, { cmd: cmdview, value: str } ,
function(data) {
var content = $(data);
$("#result").append(content);
}
);
$term_input.val('');
});
編輯::
我當前的文件是maps.php。我現在已經將其追加maps_append.php使用此代碼maps.php:
<script>
$('#cmdview').change(function() {
//alert('Handler for .change() called.');
var str = "";
url = "maps_append.php";
url = "maps_append.php";
$("select option:selected").each(function() {
str += $(this).text() + " ";
});
$('#append').load(url);
})
.change();
</script>
我只需要現在張貼選擇變量的值!
建立更緊密還是......請參閱該編輯:
<script>
$('#cmdview').change(function() {
//alert('Handler for .change() called.');
var str = "";
url = "maps_append.php";
$("select option:selected").each(function() {
str += $(this).text() + " ";
});
$.post(url, { str: "$cmdOn" } ,
function(data) {
var content = $(data);
$('#append').load(url);
})
.change();
});
</script>
現在maps_append.php頁面僅追加當我改變了選擇標籤的價值maps.php。我現在只需要在maps_append.php出現時包含select標籤的值。
上選擇什麼選項,標準追加到該頁面。如果「註冊」爲選定值,則會添加不同的表單輸入。如果選擇「聯繫人」,則會顯示另一個輸入。 「登記」被選中,數據需要被限制級別的大小。所以,我需要一個表單輸入w /一個整數 - 文本輸入將工作。 如果選擇「通信」值,我需要一個時間戳值。因此,我加載了一個日曆小程序,或者只有一個日期/月/年選擇.append頁面。 我需要更多的表單輸入出現,但什麼形式的輸入取決於用戶選擇什麼。 – Charlie
您通常不會更改PHP頁面。記住不止一個用戶可以同時使用該頁面。使用AJAX完成此操作的典型方法是僅附加到當前的HTML。您也可以保存進度,因此如果用戶稍後回來,則可以正確構建頁面。在第二種情況下,你需要一個數據庫。 – Hogan
保存當前用戶的進度以保留其搜索值是一件好事,但現在它不是主要問題。我實際上試圖做你說的話 - 附加到當前的HTML。我將另一個文件附加到當前文件。 maps.php是當前文件。選擇值將發佈到maps_append.php,而maps_append.php將附加到maps.php – Charlie