2012-05-14 82 views
0

當用戶選擇客戶名稱時,我想從數據庫中填充地址爲&該客戶的城市在運行時爲此我打電話給javascript函數改變,並從我調用PHP函數addfun()並嘗試傳遞和keyvalue進行查詢。我寫下面的代碼,但那不工作。如何獲取HTML_QuickForm中的更改選擇選項中的記錄PHP中的選擇選項

<script language='javascript' type='text/javascript'> 
function ILovePHP(frm, a) { 
var formName = frm.name; 
    alert(formName); 
b=<?php addfun(formName,a);?>; 

alert(b); 
} 
</script> 

    <?php 

$attrs = array("onChange" => "ILovePHP(this.form, this.value);"); 


require_once "HTML/QuickForm.php"; 
require_once "HTML/QuickForm/Renderer.php"; 
    $form = new HTML_QuickForm('customer_master', 'post'); 

    $form->addElement('select','custName','Select Customer Name',$cnameAry,$attrs); 
    $form->addElement('text', 'custAdd', 'Customer Address'); 
    $form->addElement('text','custCity', 'City'); 
    $form->addElement('text','custState', 'State'); 

    $form->display(); 

    function addfun($frm, $p) 
{ 

$query="Select Address, City from entityMaster where eid=$p "; 


$link = mysql_connect('localhost', 'root', ''); 
if (!$link) { 
    die('Could not connect: ' . mysql_error()); 
} 
mysql_select_db('GenInsurance'); 
$result=mysql_query($query); 

$row=mysql_fetch_array($result); 

$frm->setDefaults(array('custAdd' => $row['Address'])); 
$frm->setDefaults(array('custCity' => $row['Address'])); 

print $frm; 
return $frm; 
} 

?> 
+0

這不行! PHP代碼是從服務器解析的,來自客戶端的JS。如果你想從PHP中調用一個PHP函數,那麼你需要一個HTTP-Request(搜索Ajax) –

回答

1

使用jQuery和Ajax得到php文件的地址和城市:

創建一個名爲ajax.php:

if(isset($_GET['name'])) 
{ 

$p = $_GET['name']; 

$query="SELECT Address, City FROM entityMaster WHERE eid=$p "; 

$link = mysql_connect('localhost', 'root', ''); 
if (!$link) { 
    die('Could not connect: ' . mysql_error()); 
} 
mysql_select_db('GenInsurance'); 
$result=mysql_query($query); 

$row=mysql_fetch_array($result); 

$output = array('custAdd' => $row['Address'], 'custCity' => $row['Address']); 

echo json_encode($output); 

} 

平變化讓城市和地址:

<script src="http://code.jquery.com/jquery-1.7.2.min.js"></script> 
$('#custName').change(function(){ 

    $.getJSON("ajax.php", { name: $(this).val() } , function(data){ 
     $.each(data, function(key, value) { 
      if(key == "custCity"){ 
       $('#custCity').val(value); 
       } 
       if(key == "custAdd"){ 
       $('#custAdd').val(value); 
       } 

     }); 
    }); 
}); 

請參閱ajaxjquery