我的代码为select name=client
在jQuery的帮助下,我想填充我的文本框和其他字段。
这个select
帮助我改变了我的客户选项。
所以例如我点击选择即将选择客户端B. 之后,它将填充文本框和其他字段。信息来自数据库。
我的代码是正确的,我在这里发帖提问,因为我不知道为什么我的代码无效。
我的jQuery代码
<script type="text/javascript">
jQuery.noConflict();
jQuery(document).ready(function(){
jQuery('select[name=client]').change(function(){
var com_code = jQuery(this).val();
<?
$getClient = "SELECT * FROM jon_com_for";
$getClient .= "WHERE com_code=";
$getClient .= "'com_code'";
$setClient = SET_SQL( $getClient );
?>
jQuery('input[name=com_code]').val( '<?=$setClient['com_code'];?>' );
jQuery('input[name=set]').val( '1' );
jQuery('input[name=company_name_for]').val( '<?=$setClient['company_name_for'];?>' );
jQuery('input[name=street_name]').val( '<?=$setClient['street_name'];?>' );
jQuery('input[name=post_code]').val( '<?=$setClient['post_code'];?>' );
jQuery('input[name=city]').val( '<?=$setClient['city'];?>' );
jQuery('input[name=country]').val( '<?=$setClient['country'];?>' );
});
});
</script>
我的html代码这个html是在一个对话框里面。
<div id="dialog" title="Step 1">
<form id="submit_steps" method="POST" action="new-template.php">
<input type="hidden" name="user_code" value="<?=$_SESSION['user_code'];?>" />
<input type="hidden" name="com_code" value="<?=comucode();?>" />
<input type="hidden" name="footnote" value="1" />
<input type="hidden" name="set" value="1" />
<div style="margin:20px auto;">
<label for="client">Selecteer klant : </label>
<select name="client">
<?php
$list_of_client = mysql_query( "SELECT * FROM jon_com_for" ) or die ( mysql_error() );
while( $row = mysql_fetch_array( $list_of_client ) ) {
echo '<option value="'.$row['com_code'].'">'.$row['company_name_for'].'</option>';
}
?>
</select>
</div>
<table cellpadding="3" cellspacing="0" width="100%">
<tbody>
<tr>
<td align="right" valign="middle">BEDRIJFSNAAM :</td>
<td><input name="company_name_for" size="30" id="company_name_for" class="input" type="text" /></td>
</tr>
<tr>
<td align="right" valign="middle">ONDERWERP VAN OFFERTE :</td>
<td><input class="input" name="sub_quo" id="sub_quo" size="30" type="text" /></td>
</tr>
<tr>
<td align="right" valign="middle">STRAAT :</td>
<td><input class="input" name="street_name" id="street_name" size="30" type="text" /></td>
</tr>
<tr>
<td align="right" valign="middle">Postcode :</td>
<td><input class="input" name="post_code" id="post_code" size="30" type="text" /></td>
</tr>
<tr>
<td align="right" valign="middle">STAD :</td>
<td><input class="input" name="city" id="city" size="30" type="text" /></td>
</tr>
<tr>
<td align="right" valign="middle">LAND :</td>
<td><input class="input" name="country" id="country" size="30" type="text" /></td>
</tr>
</tbody>
</table>
<div align="center">
<input type="submit" name="save_client_prof" value="Opsslaan" /> or <a href="?c=cprof" id="cancel">Annuleren</a></p>
</div>
</form>
</div>
是否正确我把PHP放在jQuery中?
对不起代码已更新 我的对话框也不再有用了。
这里是我改变的代码谢谢大家...
<script type="text/javascript">
$(function(){
$('select[name=clientx]').change(function(e){
$('<img src="images/ajax-loader.gif" id="loading" style="width:auto;" />').appendTo("#client_details");
//Cancel the link behavior
e.preventDefault();
//Get the A tag
var com_code = $('select[name=clientx]').val();
var dia = jQuery( 'input[name=dia]' ).val();
$.ajax({
type:"GET",
url:"forms/company.php",
data: {dia: dia, com_code: com_code},
dataType: 'html',
target: '#dialog',
success: function(data){
$("#client_details").find('img#loading').remove();
$("#client_details").html(data);
}
})
});
});
</script>
答案 0 :(得分:1)
将PHP代码放在jQuery更改事件中意味着在更改事件发生时运行PHP代码。
以这种方式编写的PHP代码只在加载页面时运行一次。这意味着它永远不会知道点击后com_code
JS变量包含的内容。
为了在JS更改事件发生时执行PHP代码,您需要使用一种名为Ajax的技术。您的javascript代码需要调用一个完全独立的PHP程序,该程序将查询数据并将结果返回给浏览器以供使用的javascript代码。
这种技术很成熟,jQuery提供的功能使其易于使用。查看一些jQuery Ajax示例,并从那里开始跟踪它们。
希望有所帮助。