0

customer_address、、、およびドロップダウンcustomer_cityの自動入力を希望します。周りを見回しましたが、困惑しています。customer_statecustomer_ziponChangecustomer_name

助けてください。

<form action="" method="post" name="booking_form" class="booking" style="width: auto">
<select name="customer_name" onChange="???????">
<option value="index.php">Click to select your school </option>
<?php

// Make a MySQL Connection

$username="";

$password="";

$database="";

mysql_connect('localhost',$username,$password);

@mysql_select_db($database) or die( "Unable to select database");

$query = "SELECT * FROM table"; 
$result = mysql_query($query) or die(mysql_error());
while($row = mysql_fetch_array($result)){

$id = $row['id'];
$school = $row['customer_name'];
$phone = $row['customer_phone'];
$address = $row['customer_address'];
$city = $row['customer_city'];
$state = $row['customer_state'];
$zip = $row['customer_zip'];    
$notes = $row['customer_notes'];
?>
<option value="<?php echo $school; ?>"><?php echo "$school".", "."$city"; ?></option>
<?php } 

?></select>
<input type="text" name="customer_address">
<input type="text" name="customer_city">
<input type="text" name="customer_state">
<input type="text" name="customer_zip">
</form>
4

3 に答える 3

1

次のように、すべてのSQL結果を含むjavascriptオブジェクトを生成できます。

var schoolInfo = { id1 : {name:"Name 1", address:"address line" ...}, 
id2: {} .... }

次に、カスタマイズされた属性'sid'を含めるようにそれぞれを設定します。

<option value="school" sid="id1">school, city</option>

jQueryを使用した要素のonchangeイベントハンドラーの場合:

.change(function(){
     var sid = $(this).attr('sid');
     $("input[name='customer_address']").val(schoolInfo[sid].address);
     $("input[name='customer_city']").val(schoolInfo[sid].city);
     $("input[name='customer_zip']").val(schoolInfo[sid].zip);
});
于 2012-09-04T21:56:37.443 に答える
1

私の最初の投稿以来のいくつかのこと...mysql_もはや安全ではありません。また、すべてを 1 つのファイルにまとめるのもよくありません。SQL とビジネス ロジックをビュー、ルックアップMVCパターンから分離するのが最善です。ただし、ここにクイック&ダーティな方法があります:ここで最終結果を見ることができます:http://jsfiddle.net/webaholik/kcce6Ls9/

<?php
$sql = "SELECT id, 
    customer_name AS name, 
    customer_phone AS phone, 
    customer_address AS address, 
    customer_city AS city, 
    customer_state AS state, 
    customer_zip AS zip, 
    customer_notes AS notes 
    FROM table";
$schoolInfo = $pdo->query($sql)->fetchAll(PDO::FETCH_ASSOC);

$array = array();
foreach ($schoolInfo as $item) {
    $array[$item['id']] = $item;
}
$json = 'var SchoolInfo = ' . json_encode($array) . ';';
?>
<form action="" method="post" name="booking_form" class="booking"
style="width: auto">
<select id="customer_name" name="customer_name">
    <option value="index.php">Click to select your school</option>
<?php foreach($schoolInfo as $row){?>
    <option value="<?php echo $row['id']; ?>"><?php echo $row['name'].", ".$row['city']; ?></option>
<?php } ?>
</select>
<input type="text" name="customer_address">
<input type="text" name="customer_city">
<input type="text" name="customer_state">
<input type="text" name="customer_zip">
</form>
<script>
<?php echo $json;?>

$("#customer_name").change(function(){
    var sid = $(this).val();
    $("input[name='customer_address']").val(SchoolInfo[sid].address);
    $("input[name='customer_city']").val(SchoolInfo[sid].city);
    $("input[name='customer_zip']").val(SchoolInfo[sid].zip);
});
</script>
于 2015-02-21T00:43:00.920 に答える
0

PHPスクリプトを投稿し、Mysqlと接続してから値を返すようにしてください。

<select name="customer_name">
<option id='selects' value="index.php">Click to select your school </option>

Javascript

       $("select[name='customer_name']").change(function(){
            $.post("-YOUR PHP FILE-", customer_name: $(this).val(), function(data){
               schools = data.split(",");
               for(var i in schools){
               $("select[name='customer_name']").append("<option>"+schools[i]+"</option>");
               }
            })
       })

PHP

       <?php
          //You connected and got an array contains your school names($schools)
          $schools = implode(",",$schools); 
          echo $schools;
       ?>

あなたはそのようなことをしようとしていると思います。

于 2012-09-04T21:50:36.387 に答える