مشكلة postback؟ عدم استعادة البيانات من ديسيبل
-
23-09-2019 - |
سؤال
أنا لا أعود إلى البيانات من ديسيبل كما أتوقع. أعلم أنه يمكنني الحصول على بيانات من DB لأن لدي وظائف أخرى تعمل. مع هذه الصفحة ، ما أحاول فعله هو ما يلي:
إذا لم يكن هناك Postback ، فأود أن يردد "لم يتم تحديد فئة"
إذا تم اختيار فئة ، فأود أن تحصل على هذه البيانات من DB وإظهارها على الصفحة. أنا متأكد من أنه يمكنني القيام بذلك في عرض واحد ، أنا فقط لا أفعل شيئًا صحيحًا. هل يمكن لأي شخص المساعدة من فضلك؟
الخطأ الذي أحصل عليه هو:
تمت مواجهة خطأ PHP في شدة: رسالة إشعار: محاولة الحصول على خاصية اسم الملف غير الكائن: View/Catevory_View.php رقم السطر: 25
أما بالنسبة لمخطط DB:
الطاولة: 'اعمال' ID ، Busname ، Busowner ، Busaddress ، Busicyt ، Busstate ، Buszip ، Bussphone ، Webaddress ، Category ، Missured ، userId.
الطاولة: 'الفئة' ID ، Catname ، Catdesc.
الطاولة: 'الصور' ID ، Photoname ، TOLOCCED ، SUPID ، USERID.
الطاولة: "العروض الخاصة" المعرف ، specname ، specdesc ، الانجذاب ، userId.
الطاولة: 'أشرطة فيديو' معرف ، عنوان ، رابط ، شجيرة.
Pastebin: http://pastebin.com/aqqcvnab
المحلول
لست متأكدًا على الإطلاق ما هو بالضبط أو لا يعمل من أجلك. لقد جربت هذا محليًا ، وهو يردد "لم يتم تحديد فئة" بشكل صحيح.
رأي:
<?php
echo form_open('/site/categories');
echo form_fieldset(); ?>
<legend>Choose the Category of Business you are interested in.</legend>
<select name="catSelect">
<?php
foreach ($catList->result() as $row){
echo '<option value='.$row->id.'>'.$row->catname.'</option>';
}
echo form_submit('submit', 'Submit');
echo form_fieldset_close();
echo form_close();
?>
<table id="businessTable" class="tablesorter">
<thead><tr><th>Business Name</th><th>Photos</th><th>Videos</th><th>Specials</th></tr></thead>
<?php
if(count($serviceVendors) > 0){
foreach ($serviceVendors as $row){
echo '<tr><td>'.$row->busname.'</td><td>';
if(isset($row->photoname)){
echo "photoname is set";
}else{
echo "photoname not set";
}
echo '</td><td>';
if(isset($row->title)){
echo "title set";
}else{
echo "title not set";
}
echo '</td><td>';
if(isset($row->specname)){
echo "specname set";
}else{
echo "specname not set";
}
echo '</td></tr>';
}
}else{
echo "no category selected";
}
?>
</table>
إذا كان بإمكانك أن تكون أكثر تحديداً (ونشر مخطط DB) ، فسأبذل قصارى جهده.
نعم. المشكلة في الفئة الخاصة بك:
<?php if(count($businessList) > 0) : foreach ($businessList as $svrow): ?>
يجب أن يكون:
<?php if(count($businessList) > 0) : foreach ($businessList->result() as $svrow): ?>
بدون ال ->result()
المعرف لا يعين الكائن إلى SVROW. لذلك مع هذا الخط ، في مكانه echo $svrow->busname;
سوف صدى اسم العمل كما هو متوقع.