javascript ve php arasındaki işbirliği nasıl

3 Cevap php

i am calling a javascript for image gallery and php on a single page. let me show you some code to make things clear:

PHP

echo "<form method = post action = 'user_submit.php'>";

// get possible answers using question ID
$query = "SELECT aid, atitle FROM answers WHERE qid = '$qid' ORDER BY aid ASC";
$result = mysql_query($query) or die("ERROR: $query.".mysql_error());

if (mysql_num_rows($result) > 0) {
while ($row = mysql_fetch_object($result)) {
echo "<div id=captionbox style='width: 110px;float:left;color:#FFF;text-align:center;'>";
echo "<a href='#' class='thumb' ><img class='thumb-img' src='images/roadies/th".$row->aid.".jpg' />	</a>";
echo "<input  type = hidden name = aid id = rd".$row->aid." value = ".$row->aid.">".$row->atitle."</input>";
     	echo "</div>";
					}

echo "<input type = hidden name = qid value = '".$qid."'>";
echo "<br/>";
echo "<input type = submit name = submit value = 'Vote!'>";
			    }

  echo '</form>';

}

the above code fetches object ids and places jpeg images accordingly (thumbnails). now when i click on these thumbnails the javascript opens an overlay to display the large version. i want to pass the value of $row->aid to javascript.

sonra ben bir form doldurmak ve $row->aid geçmek isteyen javascript ve form için user_submit.php DB eklemek için.

ben php yeni duyuyorum. bana yardım edin.

3 Cevap

Kiamlaluno doğru olarak söylediği gibi, sizin javascipt dosyaya veya bir HTML dosyasında <script> elemanı bir değişken, nesne ya da dizi değişmez beyanı yazabilirsiniz. ama, önermek (1) var anahtar kelime kullanın ve (2) ayrı bir ad kullanarak düşünün.

Eğer JS anlatmak için birkaç şey varsa, bir PHP karma ve json_encode() koyun ve sonra çıkış kodlanmış dize yazmak için kullanışlı. Bu verinin ad ve doğru kaçan ilgilenir. Örneğin:

<?php
$jsdata = array(
	'this' => "It\"s gone.\nWhat?",
	'that' => array(1,3,2),
	'another' => 0x2f );
$jsdata = json_encode($jsdata);
?>
<html>
<head></head>
<body>
<script type="text/javascript">
	var thedata = <?php echo "$jsdata;" ?>
	window.console.log(thedata);
</script>
</body>
</html>

Bunu deneyin ve eğer çalışırsa görmek için javascript konsolunda bakmak.

EDIT: Eğer inşa kolaylıklar işleme PHP'nin dizi kullanabilirsiniz çünkü bu yaklaşım gibi diğer bir nedeni olan bir keyfi karmaşık $jsdata sorunları kaçan ve tek bir küresel JS nesne adını tüketen endişesi değil iken.

JavaScript veri aktarmak için birçok yolu vardır; kolay şöyledir:

<script>
  aid = <?php print $row->aid; ?>
  // The rest of the script
</script>

Ben bile sadece etiketi SCRIPT için tüm özelliklerini yazma olmadan, gerekli kod yazdı.

Her şeyden önce, her şeyi echo gerekmez. Böyle bir şey gibi geçerlidir:

while ($row = mysql_fetch_object($result)) { ?>
  <div id=captionbox style='width: 110px;float:left;color:#FFF;text-align:center;'>
  <a href='#' class='thumb' ><img class='thumb-img' src='images/roadies/th<?=$row->aid?>jpg' /> </a>
<?php ...

Bu durumda, içeriğinin değerini yankı PHP yankı kısayol etiketini kullanır. Bu <?php echo $some_variable ?> eşdeğerdir.

İkincisi, ben aslında söz konusu herhangi bir JavaScript kodunu görmüyorum. Ama yapmak ister gibi geliyor ne başarmak için, kimin değer görüntülerin birini seçerek ayarlanmış bir TEK gizli girişli bir HTML formu yapmak ve daha sonra bu form user_submit.php teslim olabilir.

Değer-ayar gerçekten size kalmış yollar, bir dizi olabilir. Ancak kullanıcı bir görüntü tıklandığında gerçekleşmesi istedim varsayalım. Sonra gibi, img etiketinin içinde onClick olayı ayarlayabilirsiniz onclick="hidden_input.value='<?=$row->aid?>'"