我正在慢慢理解PHP,但这个让我难过。 我正在用PHP中的数据填充'select'HTML元素..... while($ row = mysql_fetch_array($ result)) 一切都很好,我理解为什么。 我只是想在选择时填写页面上的其他文本框。 在http://jsfiddle.net/TPE9r/5/有一个非常有用的小提琴,但它不使用PHP。 这是我的代码的一部分...
while($row = mysql_fetch_array($result)){
echo '<option value=" ',$row['ContactID'],' ">', $row['ContactName'],' -- ', $row['BusinessName'],
'</option>';}
抱歉格式化 - 这里的新内容也... 我在小提琴中使用了类似的JavaScript但我无法在文本框中显示$ row ['ContactName']或$ row ['BusinessName']。我可以使用普通的HTML选择执行此操作,但不能在行处于“while循环”
时执行此操作答案 0 :(得分:0)
因为你试图做某事,应该以其他方式做什么。
在while
循环中,您正在推出options
html标记。
为了做到这一点,我认为,最好的做法是,如果你从结果中构建一个数组,那么你可以在以后使用它,如果你想用PHP做的话。
代码未经过测试。
echo '<select name="whatever">';
$results = array();
while($row = mysql_fetch_array($result)){
//Storing all the rows in an array
$results[] = $row;
}
for($i=0;$i < count($results); $i++) {
echo '<option value=" ',$results[$i]['ContactID'],' ">', $results[$i]['ContactName'],' -- ', $results[$i]['BusinessName']."</option>";
}
echo '</select>';
//And now you can youse your $resuls array more then one time.
$key = 0;
//The key is based on, wich data you need.
//Maybe you want to set it in the loop with an if condition
echo '<input type="text" value="'.$results[$key]['ContactName'],' -- ', $results[$key]['BusinessName'].'" />';
答案 1 :(得分:0)
最后,解决了这个 - 也许不是最好的方式,但它可能会帮助别人。
我在$(this).find(':selected').data('id')
中使用了onchange
....
并在循环中使用data-attributes
for($i=0;$i < count($results); $i++) {
echo '<option data-id="'.$results[$i]['ContactID'],' " data-bn="'.$results[$i]['BusinessName'],' " >'. $results[$i]['ContactName'].
"</option>";
和3个文本框,其id为bb,cc,dd ....
price2= this.value;
price1 = $(this).find(':selected').data('id')
price3 = $(this).find(':selected').data('bn')
$('#bb').val(price1);
$('#cc').val(price2);
$('#dd').val(price3);
循环中的单引号和双引号有点棘手,但是'嘿,这就是我们所做的!'
答案 2 :(得分:0)
尝试发布我自己的答案 - 在此处格式化时遇到问题。
循环应该是
for($ i = 0; $ i&lt; count($ results); $ i ++){ 回声&#39;。 $结果[$ I] [&#39;联系人姓名&#39]。
&#34;&#34 ;;
OOPS !!!!!再做一次 - 循环代码被截断 - 不知道为什么
答案 3 :(得分:-1)
请改用它。您不需要选项的值,而是文本。
$('#job_title').live('change', function(){
var b = $(this).text();
$('#catch_value').val(b);
return false;
});