$(function(){ $("#list").jqGrid({ url:'data.php?q=1', datatype: 'xml', mtype:"> $(function(){ $("#list").jqGrid({ url:'data.php?q=1', datatype: 'xml', mtype:"> $(function(){ $("#list").jqGrid({ url:'data.php?q=1', datatype: 'xml', mtype:" />

jqgrid、私のdata.phpファイルにクエリ文字列を送る

こんにちは私はグリッド内のいくつかの情報を表示するためにjqgridを使用しています。しかし、私には問題があり、解決方法はわかりません。

私は私のjqgridを満たすために次の関数を持っています:

<script type="text/javascript">
$(function(){
  $("#list").jqGrid({
    url:'data.php?q=1',
    datatype: 'xml',
    mtype: 'GET',
    colNames:['Fabricante','Codigo', 'Titulo','Descripcion'],
    colModel :[ 
      {name:'fabricante', index:'fabricante', width:137}, 
      {name:'codigo', index:'codigo', width:100}, 
      {name:'titulo', index:'titulo', width:250}, 
      {name:'descripcion', index:'descripcion', width:400}
    ],
    pager: '#pager',
    rowNum:1000,
    rowList:[10,20,30],
    sortname: 'invid',
    sortorder: 'desc',
    viewrecords: true,
    gridview: true,
    height: "256px",
    caption: 'Cursos'
  }); 
}); 
</script>

これは私の体です:

<form name="form" action="CourseSearch.html" method="get">
   <input type="text" class="search-fields" id="fab"/>
   <input class="" type="submit" name="Submit2" value="Search" />
</form>
<table id="list">
    <tr>
        <td><td/>
    </tr>
</table> 
<div id="pager">
</div> 

データを取得するためにmysqlクエリでこの文字列を使用する必要があるため、私は自分のhtmlフォームを使用してdata.phpページに文字列を送信する方法を知りたいだけです。

ありがとう


これは新しいコードです:

<script type="text/javascript">
$(function(){
  $('#search').click(function() {
    $("#list").trigger('reloadGrid', [{page: 1, current: true}]);
  });
  $("#list").jqGrid({
    url: 'data.php?q=1',
    postData: {
        mySearch: function() { return $('#fab').val(); }
    },
    datatype: 'xml',
    mtype: 'get',
    colNames:['Fabricante','Codigo', 'Titulo','Descripcion'],
    colModel :[ 
      {name:'fabricante', index:'fabricante', width:137}, 
      {name:'codigo', index:'codigo', width:100}, 
      {name:'titulo', index:'titulo', width:250}, 
      {name:'descripcion', index:'descripcion', width:400}
    ],
    pager: '#pager',
    rowNum:1000,
    rowList:[10,20,30],
    sortname: 'invid',
    sortorder: 'desc',
    viewrecords: true,
    gridview: true,
    height: "256px",
    caption: 'Cursos'
  }); 
}); 
</script>

別の変更

関数

<script type="text/javascript">
$(function(){
  $('#search').click(function() {
    $("#list").trigger('reloadGrid', [{page: 1, current: true}]);
    return false;
  });
  $("#list").jqGrid({
    url: 'data.php?',
    postData: {q: 1, mySearch: function() { return $('#fab').val(); }},
    datatype: 'xml',
    mtype: 'get',
    colNames:['Fabricante','Codigo', 'Titulo','Descripcion'],
    colModel :[ 
      {name:'fabricante', index:'fabricante', width:137}, 
      {name:'codigo', index:'codigo', width:100}, 
      {name:'titulo', index:'titulo', width:250}, 
      {name:'descripcion', index:'descripcion', width:400}
    ],
    pager: '#pager',
    rowNum:1000,
    rowList:[10,20,30],
    sortname: 'invid',
    sortorder: 'desc',
    viewrecords: true,
    gridview: true,
    height: "256px",
    caption: 'Cursos'
  }); 
}); 
</script>

新しいフォーム

<input type="text" class="search-fields" id="fab"/> <input class="" type="submit" name="Submit2" value="Search" />
0

1 答え

あなたが正しいと分かっている場合は、 "Submit2"ボタンをクリックして入力フィールド #fab を使用してグリッドをリフレッシュしてください。

URLに直接パラメータを送信する必要はないので、まずフォームのコードを

サーチ

「検索」ボタン上でクリックイベントのハンドラとして行うことができます

$('#search').click(function() {
    $("#list").trigger('reloadGrid', [{page: 1, current: true}]);
});

最後に、次のような追加の postData パラメータをjqGridに追加する必要があります

postData: {
    mySearch: function() { return $('#fab').val(); }
}

(see here for more information). In the case the parameter mySearch will be send to the URL 'data.php?q=1'. Because you used mtype: 'GET' the parameter will be appended to the URL like 'data.php?q=1&mySearch=test' for example

0
追加された
ありがとう@Olegしかし、私は私のdata.phpファイルでこのパラメータを得ることができますか?
追加された 著者 Jean,
完璧なことが私の考えだ。 postDataに問題があります。とにかく助けてくれてありがとう。私は他のことをやろうとします。
追加された 著者 Jean,
私はこれを試してみますが、私は次のURLを持っていても動作しません。グリッドは空です。たとえば、microsoftという言葉を含むすべての製品がほしいので、私はこのurlを送ってください:url: 'data.php?Microsoftあなたは何か考えていますか?
追加された 著者 Jean,
問題は、postDataをどこに置くべきかわからないということです:S
追加された 著者 Jean,
オレグには申し訳ありませんが、私は必死でコードを公開することができますので、あなたはチェックすることができます。お願いします???
追加された 著者 Jean,
新しいコードを貼り付ける準備が整いました。
追加された 著者 Jean,
私はそれを取得しない、私は新しいコードを投稿...
追加された 著者 Jean,
非常に非常にありがとう...私たちはそれを作った
追加された 著者 Jean,
@Jean:私はPHPを自分で使用しませんが、コードは $ mySearch = $ _REQUEST ['mySearch']; のようなものになると思います。あなたは、ページからいくつかの例をダウンロードしてください。 デモファイルにはいくつかのPHPコードが含まれています。
追加された 著者 Oleg,
@ジーン:あなたは大歓迎です!
追加された 著者 Oleg,
@Jean:URLから「Microsoft」という言葉を取得する方法: url: 'data.php?Microsoft' ?おそらく、 url: 'data.php?mySearch = Microsoft' を使用するべきでしょうか? postData:{mySearch: 'Microsoft'} の使い方も同じです。
追加された 著者 Oleg,
@Jean: postData は、オプション of jqGrid。 jqGrid({url: 'data.php'、postData:{q:1、mySearch: 'Microsoft'}、データ型: 'は、他のjqGridオプションと混ぜるだけです。 xml '、mtype:' GET '、...});
追加された 著者 Oleg,
@ジーン:はい、もちろんです!新しいコードを質問に追加する場合は、このコメントに私に知らせてください。
追加された 著者 Oleg,
@ Jean:コードの主要部分が正しいようです。また、 url: 'data.php'、postData:{q:1、mySearch:function(){return $( '#fab')を使用することもできます。 }} 。 「検索」ボタンの type = "submit" のためだけに表示される問題です。 $( '#search')の代わりに $( '#search')。submit を使用する必要があります。 action = "CourseSearch.html" method = "get" これは、現在のページのグリッドのボディを更新するのではなく、別のページを読み込みます。私は私の答えの最初の行に問題について書いた。私は form ではなく type </button>、 click fieldset を使用します。
追加された 著者 Oleg,
@Jean:新しいコードでは、 $( '#search')をクリックします。をクリックします。 "search" <button> または <input> 代わりに、あなたのHTMLコードに <input class = "" type = "submit" name = "Submit2" value = "Search" /> $( '#search')。クリックが呼び出されます。この代わりに、 CourseSearch.html ページからフォームのいくつかの追加パラメータを開いて開きます。
追加された 著者 Oleg,
@ジーン:あなたは大歓迎です!
追加された 著者 Oleg,
PHP - 日本のコミュニティ [ja]
PHP - 日本のコミュニティ [ja]
4 参加者の

このグループではPHPについて話します。 パートナー:kotaeta.com