2017-02-17 19 views
0

私は2つの入力フィールド(例えばAとB)の値がデータベースを経由しているので、フィールドBの値はAの値に依存します。私はajax呼び出しを使用しています入力フィールドBの値を変更することは、ここに私のコードです:php関数でajaxを通して変数の値を渡す方法

<!DOCTYPE HTML> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 
<title>Untitled Document</title> 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script> 
<script type="text/javascript"> 
    function ajaxfunction(parent) 
    { 
     $.ajax({ 
      url: 'http://localhost/test/process.php', 
      data: { vall : parent }, 
      success: function(data) { 
       $("#sub").html(data); 
      } 
     }); 
    } 
</script> 
</head> 

<body> 
<select onchange="ajaxfunction(this.value)"> 
<?php 
$q= mysql_query("select * from tab1"); 
while ($row= mysql_fetch_array($q)){ 
$name= $row['name'];  
echo ' 

<option value="'.$name.'"> '.$name.' </option> 
'; 
} 
?> 
</select> 

<select id="sub"></select> 

</body> 
</html> 

と私process.phpました:

$e =$_GET['vall']; 
echo $e; 
    $result = mysql_query("SELECT * FROM tab2 WHERE name = '".$e."' "); 
    while(($data = mysql_fetch_array($result)) !== false) 
     echo '<option value="', $data['id'],'">', $data['lname'],'</option>' 

は、それは私のために正常に動作しています。さて、問題は、私はクラスで働いていて、私は今、私はprocess.php

class location{ 

    public function getlocation($e) 
     { 

      $sql="SELECT * FROM tab2 WHERE name = '".$e."'"; 
      return $this->objConnect->GetData($sql); 
     } 
public function GetallpropertyFeatured(){ 

     $sql="select * from sale_property WHERE category='Featured' AND accept_status='Active' ORDER BY property_id DESC "; 
     return $this->objConnect->GetData($sql); 
    }//for showing all propery on the base of recent status. 
    public function GetallpropertyRecent(){ 

     $sql="select * from sale_property WHERE category='Recent' AND accept_status='Active' ORDER BY property_id DESC "; 
     return $this->objConnect->GetData($sql); 
    }//for showing all propery on the base of trending status. 
    public function GetallpropertyTrending(){ 

     $sql="select * from sale_property WHERE category='Trending' AND accept_status='Active' ORDER BY property_id DESC ";  
     return $this->objConnect->GetData($sql); 
    } 
    //for Getting propery on the base of featured status. 
    public function GetpropertyByFeatured(){ 

     $sql="select * from sale_property WHERE category='Featured' AND accept_status='Active' ORDER BY property_id DESC ";  
     return $this->objConnect->GetData($sql); 
    } 
    //for Getting propery on the base of latest status. 
    public function GetpropertyByRecent() 
    { 
      $sql="select * from sale_property WHERE category='Recent' AND accept_status='Active' ORDER BY property_id DESC "; 
     return $this->objConnect->GetData($sql); 
    } 
    //for Getting propery on the base of trending status. 
    public function GetpropertyByTrending() 
    { 

     $sql="select * from sale_property WHERE category='Trending' AND accept_status='Active' ORDER BY property_id DESC "; 
     return $this->objConnect->GetData($sql); 
    } 
    //for Getting propery on the base of File status. 
    public function GetpropertyByFile() 
    { 
      $sql="select * from sale_property WHERE type='File' AND accept_status='Active' ORDER BY property_id DESC "; 
     return $this->objConnect->GetData($sql); 
    } 
    public function GetallpropertyByFile() 
    { 
      $sql="select * from sale_property WHERE type='File' AND accept_status='Active' ORDER BY property_id DESC "; 
     return $this->objConnect->GetData($sql); 
    } 

     public function getimages($propertyid) 
    { 
     $sql="select images from images_property where property_id=$propertyid"; 
     return $this->objConnect->GetData($sql); 


    } 
    // for getting images of property 
    public function getimg($propertyid) 
    { 
     $sql="select images from images_property where property_id=$propertyid limit 0,3"; 
     return $this->objConnect->GetData($sql); 


    } 

    } 

の次のような構造を持って、関数内で値を取得したいので、何を私は値を渡す方法をAJAXでのURLである必要があります私たちは隠しフィールドが隠しフィールドの値を設定して、一度に使用することができ、そのためにあなたはAJAX呼び出しに直接PHPの変数を渡すことはできません

$.ajax({ 
      url: 'http://localhost/test/process.php', 
      data: { vall : parent }, 

よろしく

+0

新しいコードを書いている場合は、** _ please_は 'mysql_ *'関数**を使用しないでください。彼らは古くて壊れていて、PHP 5.5では廃止されました(セキュリティアップデートをもはや受け取っていなくなっています)、PHP 7では完全に削除されました。['PDO'](https://secure.php.net/manual /en/book.pdo.php)または['mysqli_ *'](https://secure.php.net/manual/en/book.mysqli.php)を_prepared statements_と_parameter binding_で置き換えてください。詳細については、http://stackoverflow.com/q/12859942/354577を参照してください。 – Chris

答えて

0

クライアント側から変更する必要はありません。ただし、クラスの値を取得するには、新しいprocess.phpファイルのコードにする必要があります。

class location { 

    public function getLocation($e) { 

     global $sql; 

     $sql = "SELECT * FROM tab2 WHERE name = '" . $e . "'"; 
     return $this->objConnect->GetData($sql); 
    } 

} 

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

    $location = new location(); 
    $location = $location->getLocation($_GET['val1']); 

} 
+0

しかし、私はprocess.phpにあまりにも多くの関数を持っています、私は使用したくありません(isset($ _GET ['val1'])){ $ location = new location(); $ location = $ location-> getLocation($ _ GET ['val1']); }他の方法はありますか? –

+0

元の投稿を編集して、そこにコードを追加して確認できますか? – Areeb

+0

編集してください。 –

0

:今アヤックスは、今私はこのような渡していますajaxを呼び出して隠されたフィールドから値を取得します。

関連する問題