Kez jQuery tıklama fonksiyonu dışında değişken değişiklikleri değeri

4 Cevap php

Bu benim önceki sorunun devamıdır. Ben sadece bir açık kimliği olmadan o gün giriş beri, ben bu hesaba giriş ve daha fazla düzenlemek için nasıl bilmiyorum. Yani, yeni bir Açık Kimliği etkin hesabı oluşturulur ve yeni bir soru olarak yayınlanmıştır.

Şimdi ben böyle bir kod var. Onclick olayı içinde, değeri doğru $ selectedId saklanır. Ben url bu değeri geçirmeye çalıştığınızda Ama doğru değeri alamadım. Için döngü içinde son değeri geçirilir.

 <script type="text/javascript">

 $(document).ready(function(){

 <?php foreach ($Forms as $r): ?>

    $("<li><a id='<?=$r['Form']['id'];?>' data-attr='Formentries'  href='#'><?=$r['Form']['name']?></a></li>").appendTo("#headers").click(function () {

    <?php $selectedFormId=$r['Form']['id'];?>

    alert("selId: "+<?php echo $selectedFormId;?>); //here the selected id is alerted
   });
 alert("outside the loop"+<?php echo $selectedFormId;?>); //here the last value in the loop is alerted
 });

Bir kez tıklama işlevi dışında, $ selectedFormId değeri dizideki son değere değiştirir. Birisi bu konuda bana yardımcı olabilir?

Aslında ne elde etmek çalışıyorum ben bağlantıları gibi Formlar bir dizi listesi, ve ben bağlantıları seçtiğimde ilgili id ​​php değişken kaydedilir istiyorum olduğunu. Ben başka bir bağlantı aracılığıyla şeklinde girdileri ihracat için bir seçenek var bir form seçildikten sonra özellikle bir php değişken coz kaydedilmesini istiyorum

 <a href="localhost/FormBuilder/reports/export/<?php echo $selectedFormId;?>" class="thickbox button" title= "Export" >Export</a> .

So I want the id in there,so that I could pass it to the export function in the controller. I also get the selected id in a javascript variable as

 formid=$(this).attr("id");

ama ben denetleyicisi ihracat fonksiyonu bu değeri geçmek için nasıl bilmiyorum.

4 Cevap

Ben çok iyi sorunuzu anladım bilmiyorum ama $ selectedFormId değeri döngü içinde ayarlanır, böylece her döngü döngü $ selectedFormId işlenen son değerini alır bitirdiğinde değişken ayarlanır ve çalıştırılır. Ben döngü dışında ayarlayın gerektiğini düşünüyorum.

bunun dışında mevcut değil yani blok içindeki bildirerek gibidir;

Eğer $(document).ready bloğunda önce ilan veya bu blok kendi içinde kullanımını bitirmek ya.

Bildiğim kadarıyla ben gördüğünüz gibi yineleme, her döngü içinde $ selectedFormId ayarı vardır, böylece tıklama olay tetiklenir atama kodu yalnızca kurulacaktır.

Eğer döngü çıktığınızda Bu nedenle, mantıksal, $ selectedFormId dizideki son öğe olacaktır. Eğer atama etrafında bir koşul koymak için anlamı var mı? Sunucu tarafı kodu ne olursa olsun idam olacak, unutmayın! Bu istemci tarafı koşulları veya kapanışları umurumda olmaz!

if (something){
    <?php $selectedFormId=$r['Form']['id'];?>
}

Ve yine yukarıda yorum yankılanan, gerçekten kod ayırma ulaşmak için çalışıyor olmalıdır. Yukarıdaki gerçekten tag soup!

Istemci ve sunucu tarafı kodu karıştırma - Eğer gerçekte ameliyat türü olmadığı zaman istemci tarafında JavaScript işlevi sihirli, sunucu tarafında bir PHP değişkeni ayarlamak için bekliyor gibi yazdığın kod görünüyor mümkün.

Ne belki yapmalıyım tıklayın olay istemci tarafında bir değişken olması. Sonra bir URL oluşturmak ve yerel olarak depolanan değişken değere dayalı ona yönlendirmek için ihracat linke onclick ayarlayın.

Bu muhtemelen en iyi çözüm değil, ama bir seçenek olacaktır.