[英]Update PHP variable onchange of select field
我正在研究我發現的其他人的代碼片段。 選擇字段更改后,我想更新一個PHP變量。
變量的名稱為$ ProductType,如下所示。 當前代碼執行了預期的操作,所以現在我要做的就是將變量設置為等於更改后的選項
<?php
$ProductType = '';
if(isset($_GET['trade'])){
//Everything in here will get echoed in the DIV
echo "You selected: ".$_GET['trade'];
$ProductType = $_GET['trade']; // I'd have thought this might work but when I echo $ProductType, it returns nothing.
exit;
}
?>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js"></script>
<form name="x" action="" method="POST">
<select name="trade" onchange="$('#extra').load('?trade='+this.value);">
<option value="1">item1</option>
<option value="2">item2</option>
<option value="3">item3</option>
<option value="4">item4</option>
</select>
<input type="submit" value="SEARCH" class="submit-button btn" />
</form>
<div id="extra" style="color:red;"></div>
編輯:
這次我添加了一個搜索按鈕。 我再次回聲了它,似乎它正在工作,但是,它返回的數組不是我想要的。 因此,頁面加載后,用戶將從下拉列表中進行選擇,變量$ ProductType應該更改。 如果隨后提交表單,頁面將再次加載,並且變量將更新查詢。
PHP在服務器上運行,jquery(javascript)在客戶端計算機的瀏覽器中運行,這基本上意味着,如果您從chrome或IE中檢查您的PHP為您創建的html,則您看到的只是HTML,而您的php代碼將是丟失,它丟失了,因為服務器已經運行了它(在“服務器端”),並使用它的輸出來更改/附加包含在php中的html。
您的html表單使用'post'方法,因此,當http協議將(發送回)服務器時(發送回),您需要使用$_POST["trade"]
來訪問瀏覽器在postback上發送的值, php post var文檔這里
通常,人們會在自己的html表單中添加一個隱藏變量,php可以將其用作檢查,如果該表單已被發布回服務器,或者沒有收到回發(首次運行),則隱藏變量將不會出現在$_POST
變量收集
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.