Числовые значения в базе данных работают нормально, текст — нет.

  • Автор темы fcloko_news
  • 59
  • Обновлено
  • 17, May 2024
  • #1
При нажатии кнопки в следующей строке числовые переменные работают нормально, а строка ($title1) — нет. Не могу получить это.
 function SaveProductItems(title, id,cost,quantity){

let t = title;
PHP:
 foreach ($dbo->query($q1) as $row) { $title1 = $row['ProductName']; $string1 = " <button id = \"\" onclick = \"SaveProductItems( $title1, $id, $cost,$quantity)\">Submit</button> "; 
Код (JavaScript):

fcloko_news


Рег
01 Jan, 2011

Тем
1

Постов
1

Баллов
11
  • 18, May 2024
  • #2
Давайте перенесемся на десятилетие вперед и сделаем что-нибудь подобное, но я бы, вероятно, заменил counter на что-то более точное, например, $row['product_id']. Стандартизируя имена входных переменных, вы избегаете постоянно меняющихся входных данных и передаете простейшую информацию в javascript.

Ваше событие onclick также должно быть прослушивателем, но мы оставим это на другой день.

В этом случае Onclick подойдет. Фигурные скобки {} сообщают серверу точное имя переменной. '' Одинарные кавычки означают, что вам не нужно экранировать строку, и ее легче читать.

Единственное место, где я оставил двойные кавычки, это заголовок, потому что он может содержать что-то вроде «Эликсира О'Кифса», в котором будут ошибки при одинарных кавычках.
 <?php

foreach ($dbo->query($q1) as $row) {

$counter = $counter + 1;

// the H4 should be styled with css, shouldn't have a <p> tag inside it

$string1 = "

<div class='container'\"'>

<div class='row' >

<div class='col'>

<h4 id=''>Title</h4>

<p style='text-align: center;' ><input id = '{$titleID}' type='text' name='title' value = \"{$title1}\" placeholder=\"{$title1}\"></p>

</div>

<div class='col'>

<h4 id=''>Desc</h4>

<textarea wrap id='desc{$counter}' name='text' rows='5' cols='34'>{$description}</textarea>

</div>

<button id='' onclick='SaveProductItems({$counter})'>Submit</button>

</div>

</div>";

?>

<script>

function SaveProductItems(counter){

var val1 = document.getElementById('title'+counter).value;

var val2 = document.getElementById('desc'+counter).value;

var val3 = document.getElementById('cost'+counter).value;

var val4 = document.getElementById('quantity'+counter).value;

}

</script>
Код (разметка):
 

walker900


Рег
18 Oct, 2012

Тем
0

Постов
2

Баллов
2
  • 21, May 2024
  • #3
Если я правильно понимаю, вы пытаетесь отобразить эти переменные php в кнопке HTML. В данном случае это Обратите внимание на это (".$title1."). Если я прав насчет твоих намерений. тогда это должно сработать.
 

Hyper_H


Рег
15 Jan, 2016

Тем
0

Постов
2

Баллов
2
  • 07, Jun 2024
  • #4
Ну, я сделал это... оба, здесь:
 function SaveProductItems(title, desc,cost,quantity){

var val1 = document.getElementById(title.id).value;

var val2 = document.getElementById(desc.id).value;

var val3 = document.getElementById(cost.id).value;

var val4 = document.getElementById(quantity.id).value;
PHP:
  foreach ($dbo->query($q1) as $row) { $counter = $counter + 1; $titleID = "titleID" . $counter; $descID = "descID" . $counter; $costID = "costID" . $counter; $quantityID = "quantityID" . $counter; string1 = " <div class=\"container\"> <div class=\"row\" > <div class=\"col\"> <h4><center><p id =\"\" >Title</p></center></h4> <center> <p > <input id = \"$titleID\" type=\"text\" name=\"title\" value = \"$title1\"placeholder=\"$title1\"></p></center> </div> <div class=\"col\"> <h4><center><p id = \"\">Desc</p></center></h4> <textarea wrap id = \"$descID\" name=\"text\" rows=\"5\" cols=\"34\">$description</textarea> </div> <button id = \"\" onclick = \"SaveProductItems( $titleID, $descID, $costID,$quantityID)\">Submit</button> 
Код (JavaScript):
 

Liderv


Рег
15 May, 2013

Тем
2

Постов
3

Баллов
23
  • 15, Jun 2024
  • #5
Есть какой-либо способ сделать это:
 function SaveProductItems(titleID){

var val1 = document.getElementById(titleID).value;

PHP:
 $titleID = "titleID" . $counter; $string1 = " div class=\"col\"> <h4><center><p id =\"\" >Title</p></center></h4> <center> <p > <input id = \"$titleID\" type=\"text\" name=\"title\" value = \"$title1\"placeholder=\"title1\"></p></center> </div> <button id = \"\" onclick = \"SaveProductItems( $titleID)\">Submit</button> "; 
Код (JavaScript): спасибо...
 

Лёша2


Рег
27 Jun, 2015

Тем
0

Постов
3

Баллов
3
Тем
49554
Комментарии
57426
Опыт
552966

Интересно