2013-04-14 69 views
0

我正在寫一個jQuery移動頁面(使用PHP)填充select元素,它的選項標籤具有來自MySQL中的表中的「項目」數據庫(該表包含ID,項目,成本)。使用通常引用的mysql_query和mysql_fetch_assoc方法來回顯這些工作正常。剝到裸代碼:jQuery Mobile:基於列表中的選擇更新來自MySQL表的輸入

<?php 
    $itemQuery = mysql_query("SELECT shortDesc FROM `items` ORDER BY shortDesc"); 
?> 
<label for="item" class="select">Item:</label> 
    <select name="item" id="item" data-native-menu="false"> 
     <option>Select Item:</option>    
     <?php 
      while($temp = mysql_fetch_assoc($itemQuery)) 
      { 
       echo "<option value='".$temp['shortDesc']."'>".$temp['shortDesc']."</option>"; 
      } 
     ?> 
    </select> 

我想不過是能夠更新低於所謂的「成本」與從MySQL表中的實際項目的成本,輸入元素,當用戶從選擇一個項目列表,我不確定如何使用jQuery/PHP/MySQL做到這一點。成本輸入字段:

<label for="cost">Cost:</label> 
<input type="text" name="cost" id="cost" value="" placeholder="Cost (£)"/> 

我也不能肯定,如果我們可以從$ itemQuery已經返回的結果以某種方式獲取成本值(通過改變SELECT到shortDesc,成本)節省另一個數據庫查詢,或無論我們是否必須再次查詢數據庫以執行選擇,其中用戶的選擇= shortDesc。

我懷疑是不同形式,這是開發人員的共同需求;基本上根據用戶的選擇/交互從數據庫中獲取一些信息。我曾在Google上搜索並在這裏搜索過,但我不確定是否使用正確的搜索條件來查找我懷疑已在其他地方得到答覆的內容!

幫助非常感謝一如既往。

+0

您可以使用Ajax通過向PHP發送請求並返回JSON值來完成此操作。或者,您可以在選項標籤中包含一個包含值並將其發佈一次的選項。 – Omar

回答

1

你可以這樣做:

1)循環遍歷查詢結果,寫你的選擇和一些JavaScript(我使用的關聯數組)

<?php 
    $result = mysql_query("SELECT shortDesc,costs FROM items ORDER BY shortDesc"); 
    $options = ''; 
      $javascript = ''; 
    while ($row = mysql_fetch_assoc($result)) 
    { 
     $options .= '<option value="'.$row['shortDesc'].'">'.$row['shortDesc'].'</option>'; 
     $javascript .= '\''.$row['shortDesc'].'\' : \''.$row['costs'].'\','; 
    } 
?> 

2)寫你的HTML和JavaScript:

<select id="yourselect"> 
    <option>select</option> 
<?=$options?> 
</select> 

<label for="cost">Cost:</label> 
<input type="text" name="cost" id="cost" value="" placeholder="Cost (£)"/> 

3)寫一些JavaScript來更新您的輸入字段:

<script> 
    var costs = {<?=$javascript?>}; 

    $(function() { 
    $('#yourselect').change(function() { 

    cost = costs[$('#yourselect').val()]; 

    $('#cost').val(cost); 


    }); 
    }); 

</script> 
+0

嗨。非常感謝您的回覆!我想也許你對$ array的引用應該是$ row?使用$ array我得到了很多未定義的變量錯誤。 $行似乎解決了這個問題。雖然在線「」,但我遇到了麻煩。我關閉了短PHP標記,但即使使用「<?php = $ options?>」,它也不起作用。 「<?php echo $ options;?>」確實有效。你知道我在我的PHP配置中缺少什麼來支持「<?php = $ options?>」?我很好奇等號的作用。我還沒有做到JavaScript部分,因爲我預計這行'<?php = $ javascript?>「也會失敗。非常感謝。 – Robin

+0

我通過將相同的邏輯應用於JavaScript位來實現它:「<?php echo $ javascript;?>」。 – Robin

+0

很好用。我是對的行/數組是錯誤的(我改變了我的代碼)。是的<?='是<?php echo的縮寫,另見http://php.net/ini.core#ini.short-open-tag –

相關問題